下一篇 » « 上一篇

如何编写高效的MySQL应用

作者:晏子    时间:2008-02-29    来源:    点击:4733    本文共10篇文章 字体:[ ]

复合索引

复合索引
复合索引(有时称组合索引)是急于多个列的单一索引。MySQL在处理一条查询时每个表只使用一个索引,这意味着如果你有多个经常出现在WHERE子句中的列,你可能要通过创建一个复合索引来加快这些查询。

www.444p.com

考虑下列表结构片断:
[code]CREATE TABLE people (
last_name VARCHAR(50) NOT NULL,
first_name VARCHAR(50) NOT NULL,
favorite_color VARCHAR(10) NOT NULL,
.
.
.
);
[/code]

php学习之家http://www.444p.com

如果你常常基于last_name和first_name查询表,你可以从last_name和first_name的复合索引中获益: php学习之家

[code]INDEX last_first (last_name, first_name)[/code] 本文来自 www.444p.com

由于MySQL构建复合索引的方式,它可以使用last_first索引来回答基于last_name本身或last_name与first_name两者的索引。这是因为如果列涉及复合索引的“最左前缀”的形式,MySQL将只使用一个复合索引。 php学习之家http://www.444p.com

所以如果一个复合索引有多个列合成: php学习之家http://www.444p.com

[code]INDEX big_index (a, b, c, d, e, f, g, h, i)[/code] php学习之家

MySQL可以用它来回答基于a、或a和b、或a和b和c、或a和b和c和d的查询。但它不能使用big_index处理基于e、或c和f、或g和i的查询,因为这些序列没有一个是从索引的最左边开始的。

www.444p.com版权所有

复合索引尝被用于加快某些复杂查询,但你需要理解起局限,而且你永远应该进行一些测试,而不是简单地假设这样一个索引将会有帮助。 www.444p.com

  • 如何编写高效的MySQL应用 上一页 规范化你的表结构
  • 如何编写高效的MySQL应用 总目录
  • 如何编写高效的MySQL应用 下一页 使用索引加快查询
责任编辑:semirock
发表评论
密码: (游客不需要密码)
记住我【Alt+S 或 Ctrl+Enter 快速提交】

搜索工具


《PHP与MYsql》点击排行