扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
7.4.4 多字段索引
MySQL可以在多个字段上创建索引,可以由多达15个字段组成。对特定的字段类型,还可以使用前缀索引(详情请看"7.4.3 Column Indexes”)。
多字段索引可以认为是由索引字段的值连接在一起而成,且经过排序之后的数组。
MySQL以如下方法使用多字段索引:在 WHERE 子句中指定了已知数量的索引的第一个字段,查询就很快了,甚至无需指定其他字段的值。
假定一个表结构如下:
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 上或 last_name 和 first_name 一起的指定范围内查询时能起到作用。因此这个索引在以下几个查询中都会被用到:
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 在以下几个查询中不会被用到:
SELECT * FROM test WHERE first_name='Michael';
SELECT * FROM test
WHERE last_name='Widenius' OR first_name='Michael';
关于MySQL如何使用索引来改善查询性能的方式在下个章节中具体讨论。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。