【发布时间】:2021-01-31 00:44:06
【问题描述】:
mysql 8.0.21
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name,first_name)
);
sql 为:select * from test where last_name between 'james' and 'jones' and first_name = 'M'
实际上将使用什么索引,(last_name, first_name) 还是只是 2 列索引的一部分?
参考:https://dev.mysql.com/doc/refman/8.0/en/multiple-column-indexes.html
【问题讨论】:
-
使用
explain,您可以自行查找。 -
您的表定义中没有
INDEX(last_name),因此您的问题应该改写为是否只使用 2 列索引的一部分。
标签: mysql indexing query-performance