科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道MySQL手册版本 5.0.20-MySQL优化(六)

MySQL手册版本 5.0.20-MySQL优化(六)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

MySQL将记录数据和索引数据分别存放在不同的文件里。其他很多(几乎所有)数据库都将这记录和索引数据存在同一个文件中。我们相信MySQL的选择对于现在更大范围的系统更合适。

来源:LUPA 2008年5月22日

关键字: 数据库 技巧 MySQL

  • 评论
  • 分享微博
  • 分享邮件

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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章