我想知道MySql如何处理索引优先级。我有下表。
CREATE TABLE table (
colum1 VARCHAR(50),
colum2 VARCHAR(50),
colum3 ENUM('a', 'b', 'c'),
PRIMARY KEY(colum1, colum2, colum3)
);
CREATE INDEX colum1_idx ON table (colum1);
CREATE INDEX coloum2_idx ON table (colum2);
const query = `SELECT * FROM table
WHERE colum1 = ?
ORDER BY colum2
LIMIT ?,?`;
基本上我的PK由所有字段组成(我需要使用INSERT IGNORE),我使用colum1作为WHERE子句和ORDER by colum2进行查询。
我的问题是我应该创建2个不同的索引还是用(colum1和colum2)创建1个索引?
答案 0 :(得分:0)
感谢@JuanCarlosOpo
我在这里找到答案:http://mysql.rjweb.org/doc.php/index_cookbook_mysql#algorithm_step_2c_order_by_
使用两列的复合索引可以提高性能。
CREATE INDEX colum_idx ON table (colum1,colum2);
非常感谢!