use*_*601 7 mysql innodb performance index
我有一个与性能相关的问题,在 MySQL 中,多个单列索引是否比一个多列索引快?
仅作为最后的手段
对于 MySQL Query Optimizer 来说,拥有多个索引可能是一个相当艰巨的冒险。
我以前写过这个
Sep 18, 2012
: MySQL 如何在查询中使用多个索引?Apr 19, 2014
:优化索引(在标题下ANSWER TO QUESTION #2
)本质上,MySQL 将沿多个索引进行查找并对结果执行索引合并。如果没有复合索引是针对您的查询的可用这只会做作为最后的手段WHERE
,GROUP BY
和ORDER BY
条款。
多列索引中列的顺序也有关系。如果您有以下情况:
(a),(b),(c)
(a,b,c)
三列索引是,如果更好的WHERE
,GROUP BY
和ORDER BY
子句利用在索引中的顺序索引列(a,b,c)
。任何不同的组合都可能导致索引范围扫描(a,b,c)
。下一个最佳选择可能是(a,b,c)
. 如果这些都不可能,最后的办法就是合并搜索(a)
, (b)
, (c)
。
归档时间: |
|
查看次数: |
12951 次 |
最近记录: |