组合索引适用的情况

来源:互联网 发布:数据库通配符 编辑:程序博客网 时间:2024/04/30 15:56

假设一个表有下面的规则:

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)
);

name 索引是在last_name和first_name 列,该指标可用于查找查询指定值在已知范围内组合last_name和first_name值。

它也可以用于特定的last_name值的查询,因为last_name列是索引最左边前缀。

因此, name index 适用于下面的查询:
SELECT * FROM test WHERE last_name=’Widenius’;

SELECT * FROM test
WHERE last_name=’Widenius’ AND first_name=’Michael’;

SELECT * FROM test
WHERE last_name=’Widenius’
AND (first_name=’Michael’ OR first_name=’Monty’);

SELECT * FROM test
WHERE last_name=’Widenius’
AND first_name >=’M’ AND first_name < ‘N’;

name index 不能用于下面的查询:

SELECT * FROM test WHERE first_name=’Michael’;

SELECT * FROM test
WHERE last_name=’Widenius’ OR first_name=’Michael’;

假设 你执行下面的SELECT 语句:

SELECT * FROM tbl_name
WHERE col1=val1 AND col2=val2;

0 0
原创粉丝点击