任务8建立和管理索引

任务8建立和管理索引

ID:46503929

大小:80.50 KB

页数:9页

时间:2019-11-24

任务8建立和管理索引_第1页
任务8建立和管理索引_第2页
任务8建立和管理索引_第3页
任务8建立和管理索引_第4页
任务8建立和管理索引_第5页
资源描述:

《任务8建立和管理索引》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、任务8建立和管理索引【任务背景】94【任务要求】94【任务分解】948.1认识索引948.1.1索引分类95&1.2索引的设计原则96&2索引的建立968.2.1创建表时创建968.2.2用CREATEINDEX语句创建978.2.3通过ALTERTABLE语句创建索引98&3索引的查看99&4索引的删除1008.4.1用DROPINDEX语句删除索引1008.4.2用ALTERTABLE语句删除100【项目实践】101【习题】101【任务背景】由于数据库在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。在进

2、行涉及多个表联接,包括了许多搜索条件(比如人小比较、Like匹配等),而且表数据量特别大的查询时,在没有索引的情况下,MySQL需要执行的扫描行数会很大,速度也会很慢。【任务要求】本任务将从认识索引、索引的分类以及索引的设计原则等方面着手,介绍创建和管理索引的方法。特别要注意的是,索引并不是很多越好,要正确认识索引的重要性和设计原则,创建合适的索引。【任务分解】&1认识索引索引是一种特殊的数据库结构,可以用来快速杏询数据库表屮的特定记录。MySQL屮,所有的数据类型都可以被索引。MySQL支持的索引主要有Hash索引和B-Tree索引。目前大部分MySQL索

3、引都是以B-树(BTREE)方式存储的,是MySQL数据库中使用最为频繁的索引类型,除了Archive存储引擎之外的其他所有的存储引擎都支持B-Tree索引。不仅在MySQL中是如此,在其他的很多数据库管理系统中B-Tree索引也同样是作为最主要的索引类型的,这主要是因为B-Tree索引的存储结构在数据库的数据检索中有著非常优界的表现。-•般來说,MySQL中的B-Tree索引的物理文件大多是以BalanceTree的结构来存储的,也就是所有实际需要的数据都存放于Tree的LeafNode,而且到任何一个LeafNode的最短路径的长度都是完全相同的,所以把

4、它称之为B-Tree索引。MySQLHash索引相对于B-Tree索引,检索效率要高上不少。虽然Hash索引效率高,但是Hash索引本身由于其特殊性也带來了很多限制和弊端,主要有以卜•这些。(1)MySQLHash索引仅仅能满足和〃<二〉〃查询,不能使用范围查询。(2)MySQI,Hash索引无法被用來避免数据的排序操作。(3)MySQLHash索引不能利用部分索引键查询。(4)MySQLHash索引在任何时候都不能避免表扫描。(5)MySQLHash索引遇到人量Hash值相等的情况示性能并不一定就会比B-Tree索引高。【分析与讨论】(1)MY1SAM里所

5、有键的长度仅支持1000字节,1NNODB是767。(2)blob和text字段仅支持前缀索引。(3)使用!=以及◊的吋候,MySQL不使用索引。(4)当在字段使用函数的时候,MySQL无法使用索引;在join时条件字段类型不一致的时候,MySQL无法使用索引;在组合索引里使用非第一个索引时也不使用索引。(5)在使用like的时候,以%开头,即〃%***〃的时候无法使用索引;在使用or的时候,要求or前后字段都有索引。(6)索引是一个简单的表,MySQL将一个表的索引都保存在同一个索引文件屮,所以索引也是要占用物理空间的。如果有大量的索引,索引文件可能会比数

6、据文件更快地达到最大的文件尺寸。(7)在更新表中索引列上的数据时,MySQL会自动地更新索引,索引树总是和表的内容保持一致。这可能需要重新组织一个索引,如來表中的索引很多,这是很浪费时间的。也就是说,这样就降低了添加、删除、修改和其他写入操作的效率。表中的索引越多,则更新表的时间就越长。(8)如果从表屮删除了列,则索引可能会受到彩响。如果所删除的列为索引的组成部分,则该列也会从索引中删除。如果组成索引的所有列都被删除,则整个索引将被删除。8.1.1索引分类MySQL的索引包括普通索引(TXDEX)、唯一性索引(UNIQUE)、主键(PRIMARYKEY).全

7、文索引(FULLTEXT)和空间索引(SPATIAL)。(1)普通索引(INDEX)索引的关键字是INDEX,这是最基本的索引,它没有任何限制。(2)唯一性索引(UNIQUE)关键字是UNIQUEo与普通索引类似,但是UNIQUE索引列的值必须唯一,允许有空值。如果是组合索引,则列值的组合必须唯一。在一个表上可以创建多个UNIQUE索引。(3)主键索引(PRIMARYKEY)它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引。也可通过修改表的方法增加主键,但一个表只能冇一个主键索引。(1)全文索引(FULLTEXT)FULLTEXT索引

8、只能对CHAR,VARCHAR和TEXT列编制索引,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。