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

时间:2012-05-03 12:10:25

标签: php mysql

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

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

示例表:

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

查询:“选择A,B,C,D,E,F,...... FROM表WHERE X = 5 ORDER BY Z”

更新1:

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

4 个答案:

答案 0 :(得分:7)

索引与您选择的列数(不包括FULLTEXT)相比没有性能inpact。它们仅用于在使用选择(WHERE)和有时订购(ORDER BY)和聚合(GROUP BY等)时加速。

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

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

答案 1 :(得分:1)

使用上述列并在此处执行select语句的视图怎么样?

答案 2 :(得分:0)

在您的情况下,唯一有帮助的索引是x和z上的索引。更改表tbl添加键(x,z)。

mysql每个查询每个表只使用1个索引。因此,拥有多个索引对这一个查询无济于事。

答案 3 :(得分:-1)

你的意思是使用SELECT * FROM table bla bla bla?