开发者社区


Web服务 | ASP/ASP.Net | JSP | PHP/Perl | 网站设计
首页 - WEB技术
Web技术
全文搜索:   

MySQL 查询优化器的使用
作者: Susan Sales Harkins、Martin W. P. Reid
2001-05-23 21:15:36



MySQL 查询优化器的使用
索引

简单说来,索引就是指向数据文件中实际记录的指针。索引包含了值对应了表中每一个值,但是 MySQL 是按照顺序存储索引值的。例如,在表employee中,你可能对字段 EmployeeNumber 进行索引。不管你怎样整理表employee,索引值始终按照EmployeeNumber进行排序。

现在假设在表中查找编号为24的雇员。MySQL对表进行搜索并在索引值为25处停止。优化器知道,索引值超过25就不会再有更多指针符合查找规则。

现在,为了能够理解下面的叙述,需要定义几个必须知道的索引术语: 单列索引只考虑一列的值。
多列索引考虑一列以上的值。
左端前缀索引是充当索引的左端列的集合。

前两个顾名思义;第三个复杂一些。多列索引有可能充当几个前缀,这是因为索引中任意从最左边开始的连续列,都可用来匹配数值。例如,假设有一个三列索引,其列名如下:LastName, FirstName,和Title。除了原来的索引,还可能有两个以上索引:
LastName, FirstName
LastName

定义前缀索引有两个基本规则:
索引必须包含最左边的一列,所以以下不是索引
FirstName
Title
FirstName, Title

索引不能跳过某些列,所以以下也不是索引:
LastName, Title
现在,你可能对其重要性并没有充分认识。当 WHERE 语法扩展到多列索引上,尽可能的使用靠近左边的前缀。否则优化器可能根本就不使用索引,而性能也大打折扣。

【上一页】 【下一页】
声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号