何时创建多列索引?

Bru*_*Dou 3 mysql index

什么时候在Mysql中创建多列索引?

我应该测量慢查询并为它们创建多列索引吗?

azz*_*axp 7

MySQL 可以将多列索引用于测试索引中所有列的查询,或仅测试第一列、前 2 列、前 3 列等的查询。如果在索引定义中以正确的顺序指定列,单个复合索引可以加快对同一个表的多种查询。

SELECT * FROM test WHERE first_name='Andrew';

SELECT * FROM test
  WHERE last_name='Smith' OR first_name='Andrew';
Run Code Online (Sandbox Code Playgroud)

假设您发出以下SELECT语句:

mysql> SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;
Run Code Online (Sandbox Code Playgroud)

如果 col1 和 col2 上存在多列索引,则可以直接获取相应的行。如果 col1 和 col2 上存在单独的单列索引,则优化器会尝试使用索引合并优化。

来源:http : //dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html