MySQL数据库基础实例教程(第3版) 课件 第七章 索引与分区.pptx

MySQL数据库基础实例教程(第3版) 课件 第七章 索引与分区.pptx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第7章索引与分区

项目知识要点知识能力目标学时任务1索引及其应用1索引的分类2创建索引3删除索引4索引对查询的影响【典型工作任务】创建索引【技能要求】1理解各种索引的作用与区别2掌握建立各种索引的方法【知识要求】1索引的作用与使用2建立索引的SQL语句4项目实训LibraryDB索引与分区2项目知识要点与目标

索引及其应用索引——是一种提高查找速度的机制索引用来快速地寻找那些具有特定值的记录,如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。

索引文件学生表student中建立“学号”索引(升序)示意图学号记录号200601011200601023200602032…………2007020110000…………20809995000学号姓名性别年张建男1820060202王欢女1720060102田静男18………..2080999李华女19…….….丽女17学生表student索引文件

索引文件如何影响原表没有索引文件时:如果要找位于第10000条的学号的记录,计算机要在表中查找10000次指针在原表中顺序移动学号姓名性别年张建男1820060202王欢女1720060102田静男18………..2080999李华女19…….….丽女17

使用索引查找计算机先在索引文件中学号为的记录,找到相应的记录号,再到学生表中直接读取相关记录.有索引文件时:(二分法查找实例)学号记录号200601011200601023200602032…………2007020110000…………20809995000学号姓名性别年张建男1820060202王欢女1720060102田静男18………..2080999李华女19…….….丽女17学生表student索引文件

B树索引示意图

索引的分类01OPTION02OPTION03OPTION04OPTION普通索引(INDEX)这是最基本的索引类型,它没有唯一性之类的限制。创建普通索引的关键字是INDEX。唯一性索引(UNIQUE)这种索引和前面的普通索引基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须是唯一的。创建唯一性索引的关键字是UNIQUE。主键(PRIMARYKEY)主键是一种唯一性索引,它必须指定为“PRIMARYKEY”。主键一般在创建表的时候指定,也可以通过修改表的方式加入主键。但是每个表只能有一个主键。全文索引(FULLTEXT)MySQL支持全文检索和全文索引。全文索引的索引类型为FULLTEXT。全文索引只能在VARCHAR或TEXT类型的列上创建,并且只能在MyISAM表中创建。

创建索引1.使用CREATEINDEX语句CREATE[UNIQUE|FULLTEXT]INDEX索引名ON表名(列名[(长度)][ASC|DESC],...)使用CREATEINDEX语句可以在一个已有表上创建索引,一个表可以创建多个索引。语法格式:说明:索引名:索引的名称,索引名在一个表中名称必须是唯一的。列名:表示创建索引的列名。长度:表示使用列的前多少个字符创建索引。使用列的一部分创建索引可以使索引文件大大减小,从而节省磁盘空间。BLOB或TEXT列必须用前缀索引。UNIQUE:表示创建的是唯一性索引FULLTEXT:表示创建全文索引;CREATEINDEX语句并不能创建主键。

创建索引举例可以在一个索引的定义中包含多个列,中间用逗号隔开,但是它们要属于同一个表。这样的索引叫做复合索引。CREATEINDEXname-_bookONBook(书名(6)ASC);【例】在Sell表的用户号列和图书编号列上建立一个复合索引sfz_bh-_sell。CREATEINDEXuser_bh-_sellONSell(用户号,图书编号);【例】根据Book表的书名列上的前6个字符建立一个升序索引name-_book。

ALTERTABLE语句创建索引2.使用ALTER

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档