我需要从数据库中选择 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 ?