从 mysql 数据库中选择许多列的最快方法是什么?


What is the fastest way to SELECT many colums from a mysql database?

我需要从数据库中选择 25 列,条件为 WHERE 和 ORDER BY。

我试图为此制作一个索引,但它仅限于 16 列。如何组织 mysql 语句和数据库,以便以最快的方式从 PHP 中的数据库中选择这 25 列?

示例表:

列: A, B, C, D, E, F, ....

查询:"选择 A、B、C、D、E、F、...从表中 X = 5 次 X 乘以 Z

"

更新 1:

这是一个大表(多行),这就是为什么我需要一个索引来加快这个过程。

索引没有与

您选择的列数相关的性能限制(不包括全文)。它们仅在您使用选择(WHERE)和有时排序(ORDER BY)和聚合(GROUP BY等)时用于加速。

在这种情况下,您需要在 X 和 Z 上定义索引以获得最佳效率。因为MySQL每个查询只能使用1个索引,所以你需要在(X,Z)上有一个索引(因为首先选择X,然后在Z上排序)。请注意,这兼作 X 的索引

此外,包含所有列的索引与表条目几乎相同(尽管已排序),因此您不会从中获得太多的 SELECT 性能改进,而 INSERT/UPDATE/DELETE 性能会直线下降。

具有上述列并对此执行 select 语句的视图怎么样?

在您的情况下,唯一有帮助的索引是 x 和 z 上的索引。

MySQL 每个查询的每个表仅使用 1 个索引。 因此,拥有许多索引对这一个查询没有帮助。

你的意思是使用 SELECT * FROM 表,其中 bla bla bla ?