《第7章索引.ppt》由会员分享,可在线阅读,更多相关《第7章索引.ppt(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第7章章 索引索引索引是一种特殊的数据库结构,索引是一种特殊的数据库结构,可以用来快速查询数据可以用来快速查询数据库表中的特定记录。索引是提高数据库性能的重要方式。库表中的特定记录。索引是提高数据库性能的重要方式。MySQL中,所有的数据类型都可以被索引。中,所有的数据类型都可以被索引。MySQL的索引的索引包括普通索引、惟一性索引、全文索引、单列索引、多列索包括普通索引、惟一性索引、全文索引、单列索引、多列索引和空间索引等引和空间索引等。在这一章中将讲解的内容包括:在这一章中将讲解的内容包括:索引的含义和特点索引的含义和特点索引的分类索引的分类如何设计索引如何设计索引如何创建索引如何创建索
2、引如何删除索引如何删除索引7.1 索引简介索引简介索引由数据库表中一列或多列组合而成,其作用是提高索引由数据库表中一列或多列组合而成,其作用是提高对表中数据的查询速度。本节将详细讲解索引的含义、作用、对表中数据的查询速度。本节将详细讲解索引的含义、作用、分类和设计索引的原则。分类和设计索引的原则。7.1.1 索引的含义和特点索引的含义和特点索引是创建在表上的,是对数据库表中一列或多列的值索引是创建在表上的,是对数据库表中一列或多列的值进行排序的一种结构。索引可以提高查询的速度。本小节将进行排序的一种结构。索引可以提高查询的速度。本小节将详细讲解索引的含义、作用、优缺点。索引有起明显的优势,详细
3、讲解索引的含义、作用、优缺点。索引有起明显的优势,也有其不可避免的缺点。也有其不可避免的缺点。索引的优点索引的优点索引的缺点索引的缺点7.1.2 索引的分类索引的分类MySQL的索引包括普通索引、惟一性索引、全文索引、的索引包括普通索引、惟一性索引、全文索引、单列索引、多列索引和空间索引等。本小节将详细讲解这几单列索引、多列索引和空间索引等。本小节将详细讲解这几种索引的含义和特点。种索引的含义和特点。1普通索引普通索引2惟一性索引惟一性索引3全文索引全文索引4单列索引单列索引5多列索引多列索引6空间索引空间索引7.1.3 索引的设计原则索引的设计原则为了使索引的使用效率更高,在创建索引的时候必
4、须考为了使索引的使用效率更高,在创建索引的时候必须考虑在哪些字段上创建索引和创建什么类型的索引。本小节将虑在哪些字段上创建索引和创建什么类型的索引。本小节将向读者介绍一些索引的设计原则。向读者介绍一些索引的设计原则。1选择惟一性索引选择惟一性索引2为经常需要排序、分组和联合操作的字段建立索引为经常需要排序、分组和联合操作的字段建立索引3为常作为查询条件的字段建立索引为常作为查询条件的字段建立索引4限制索引的数目限制索引的数目5尽量使用数据量少的索引尽量使用数据量少的索引6尽量使用前缀来索引尽量使用前缀来索引7删除不再使用或者很少使用的索引删除不再使用或者很少使用的索引7.2 创建索引创建索引创
5、建索引是指在某个表的一列或多列上建立一个索引,创建索引是指在某个表的一列或多列上建立一个索引,以便提高对表的访问速度。创建索引有三种方式,这三种方以便提高对表的访问速度。创建索引有三种方式,这三种方式分别是创建表的时候创建索引、在已经存在的表上创建索式分别是创建表的时候创建索引、在已经存在的表上创建索引和使用引和使用ALTER TABLE语句来创建索引。本节将详细讲解语句来创建索引。本节将详细讲解这三种创建索引的方法。这三种创建索引的方法。7.2.1 创建表的时候创建索引创建表的时候创建索引创建表的时候可以直接创建索引,这种方式最简单、方创建表的时候可以直接创建索引,这种方式最简单、方便。其基
6、本形式如下:便。其基本形式如下:CREATE TABLE 表名表名(属性名属性名 数据类型数据类型 完整性约束完整性约束条件条件,属性名属性名 数据类型数据类型 完整性约束条件完整性约束条件,1创建普通索引创建普通索引2创建惟一性索引创建惟一性索引3创建全文索引创建全文索引4创建单列索引创建单列索引5创建多列索引创建多列索引6创建空间索引创建空间索引7.2.2 在已经存在的表上创建索引在已经存在的表上创建索引在已经存在的表上,可以直接为表上的一个或几个字段在已经存在的表上,可以直接为表上的一个或几个字段创建索引。基本形式如下:创建索引。基本形式如下:CREATE UNIQUE|FULLTEXT
7、|SPATIAL INDEX 索引名索引名 ON 表名表名 (属性名属性名 (长度长度)ASC|DESC);1创建普通索引创建普通索引2创建惟一性索引创建惟一性索引3创建全文索引创建全文索引4创建单列索引创建单列索引5创建多列索引创建多列索引6创建空间索引创建空间索引7.2.3 用用ALTER TABLE语句来创建索引语句来创建索引在已经存在的表上,可以通过在已经存在的表上,可以通过ALTER TABLE语句直接语句直接为表上的一个或几个字段创建索引。基本形式如下:为表上的一个或几个字段创建索引。基本形式如下:ALTER TABLE 表名表名 ADD UNIQUE|FULLTEXT|SPATI
8、AL INDEX 索引名(属性名索引名(属性名 (长度长度)ASC|DESC);其中的参数与上面的两种方式的参数是一样的。其中的参数与上面的两种方式的参数是一样的。1创建普通索引创建普通索引2创建惟一性索引创建惟一性索引3创建全文索引创建全文索引4创建单列索引创建单列索引5创建多列索引创建多列索引6创建空间索引创建空间索引7.3 删除索引删除索引删除索引是指将表中已经存在的索引删除掉。一些不再删除索引是指将表中已经存在的索引删除掉。一些不再使用的索引会降低表的更新速度,影响数据库的性能。对于使用的索引会降低表的更新速度,影响数据库的性能。对于这样的索引,应该将其删除。本节将详细讲解删除索引的方
9、这样的索引,应该将其删除。本节将详细讲解删除索引的方法。法。对应已经存在的索引,可以通过对应已经存在的索引,可以通过DROP语句来删除索引。语句来删除索引。基本形式如下:基本形式如下:DROP INDEX 索引名索引名 ON 表名表名;7.4 本章实例本章实例在本小节中将在在本小节中将在job数据库创建一个数据库创建一个user表和一个表和一个information表。表。1登录数据库系统并创建登录数据库系统并创建job数据库数据库2创建创建user表表3创建创建information表表4在在name字段创建名为字段创建名为index_name的索引的索引5创建名为创建名为index_bir
10、的多列索引的多列索引6用用ALTER TABLE语句创建名为语句创建名为index_id的惟一性索的惟一性索引引7删除删除user表上的表上的index_user索引索引8删除删除information表上的表上的index_name索引索引7.5 上机实践上机实践题目要求:题目要求:(1)在数据库)在数据库job下创建下创建workInfo表。创建表的同时在表。创建表的同时在id字段上字段上创建名为创建名为index_id的惟一性索引,而且也降序的格式排列。的惟一性索引,而且也降序的格式排列。字段名字段描述数据类型主键外键非空唯一自增id编号INT(10)是否是是是name职位名称VARCH
11、AR(20)否否是否否type职位类别VARCHAR(10)否否否否否address工作地址VARCHAR(50)否否否否否wages工资INT否否否否否contents工作内容TINYTEXT否否否否否extra附加信息TEXT否否否否否7.6 常见问题及解答常见问题及解答1MySQL中索引、主键和惟一性的区别是什么?中索引、主键和惟一性的区别是什么?2表中建立了索引以后,导入大量数据为什么会很慢表中建立了索引以后,导入大量数据为什么会很慢?7.7 小结小结本章介绍了本章介绍了MySQL数据库的索引的基础知识、创建索数据库的索引的基础知识、创建索引的方法、删除索引的方法。创建索引的内容是本章
12、的重点。引的方法、删除索引的方法。创建索引的内容是本章的重点。读者应该重点掌握创建索引的三种方法。这三种方法分别是读者应该重点掌握创建索引的三种方法。这三种方法分别是创建表的时候创建索引、使用创建表的时候创建索引、使用CREATE INDEX语句来创建语句来创建索引和使用索引和使用ALTER TABLE语句来创建索引。设计索引的基语句来创建索引。设计索引的基本原则是本章的难点。读者应该根据本章介绍的基本原则,本原则是本章的难点。读者应该根据本章介绍的基本原则,结合表的实际情况进行设计。下一章将介绍视图的定义、视结合表的实际情况进行设计。下一章将介绍视图的定义、视图的作用、创建视图、删除视图、查询视图和更新视图等内图的作用、创建视图、删除视图、查询视图和更新视图等内容。容。