《数据库索引》PPT课件

《数据库索引》PPT课件

ID:38902177

大小:257.81 KB

页数:21页

时间:2019-06-21

《数据库索引》PPT课件_第1页
《数据库索引》PPT课件_第2页
《数据库索引》PPT课件_第3页
《数据库索引》PPT课件_第4页
《数据库索引》PPT课件_第5页
资源描述:

《《数据库索引》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MySql数据库索引索引基础索引是提高查询速度的最重要的工具。当然还有其它的一些技术可供使用,但是一般来说引起最大性能差异的都是索引的正确使用与否。为了满足应用的高效数据查询需要,选择合适的表类型以及数据类型也至关重要。建表-表类型MySQL中表的类型表现为不同的存储引擎,同一种存储引擎在不同的应用中表现出的性能差异也是不容忽略的重要因素。因此,在建表之初应当正确选择表的类型。MyISAM和InnoDB两种使用比较多的存储引擎,MyISAM类型(不支持事务,不支持外键,对访问完整性无要求)在select操作多的

2、应用中优势明显;InnoDB在insert、update操作多的应用中优势明显。索引基础建表-数据类型高效的查询也要求在合适的表字段上使用好的索引策略,所以创建表的字段类型选择对于快速查询也有很重要的影响。选择数据类型来帮助提高查询运行速度。把数据列定义成不能为空(NOTNULL)。这会使处理速度更快,需要的存储更少。它有时候还简化了查询,因为在某些情况下不需要检查值的NULL属性。考虑使用ENUM数据列。如果某个数据列的基数很低(包含的不同的值数量有限),那么可以考虑把它转换为ENUM列。ENUM值可以被更快

3、地处理,因为它们在内部表现为数值。索引基础以下是几种常用数据类型在MySQL中的性能顺序(从高到低)INT>CHAR>VARCHAR>TEXTENUM介于INT与CHAR性能行之间;在相同数据类型的情况下,长度短的性能更高,因此在建表时要充分考虑每个字段最合适的类型及长度。索引类型B-Tree索引一般来说,MySQL中的B-Tree索引的物理文件大多是以BalanceTree的结构来存储的,也就是所有实际需要的数据都存放于Tree的LeafNode,而且到任何一个LeafNode的最短路径的长度都是完全相同的,

4、所以把它称之为B-Tree索引。不过,可能各种数据库(或MySQL的各种存储引擎)在存放自己的B-Tree索引的时候会对存储结构稍作改造。如InnoDB存储引擎的B-Tree索引使用的存储结构实际上是B+Tree,在B-Tree数据结构的基础上做了很小的改造,在每一个LeafNode上面除了存放索引键的相关信息之外,还存储了指向与该LeafNode相邻的后一个LeafNode的指针信息,这主要是为了加快检索多个相邻LeafNode的效率。索引类型在InnoDB存储引擎中,存在两种不同形式的索引,一种是Clust

5、er形式的主键索引(PrimaryKey),另外一种则是和其他存储引擎(如MyISAM存储引擎)存放形式基本相同的普通B-Tree索引,这种索引在InnoDB存储引擎中被称为SecondaryIndex。索引分类主键索引与第二索引索引类型使用B-Tree索引的查询类型B-Tree索引能够很好的用于全键值,键值范围以及键前缀的索引查找,它只有在查找时候使用了最左前缀的时候还有用,有效的查询类型如下:匹配全名:全键值匹配指和索引中的所有列匹配。匹配最左前缀:按照索引顺序,只匹配前几列。匹配列前缀:按照这种索引顺序,

6、只匹配索引第一列中以某字符串开头的所有结果。匹配范围值:可以查找大于某一个值且小于某一个值的集合,但是只能用于第一列。索引类型精确匹配一部分,并且部分匹配另一部分:查找索引前几个字段精确匹配,后面一个字段的模糊匹配。只访问索引的查询:B-Tree索引通常能支持只访问索引的查询,它不需要访问数据行(覆盖索引)。上面的查找方式适用于查找,同样也适用于orderby排序。B-Tree索引的局限:1.没有从索引列的最左边开始将不起作用。2.不能跳过索引中的列,不然只有索引前一部分的索引生效。3.不能优化第一个范围条件右

7、边的列。索引类型哈希索引对于每一行,存储引擎根据被索引的列计算出哈希码,它是一个很小的值,并且有可能和其它行的哈希码不同,它把哈希码保存到索引中,并且保存了一个哈希表中每一行的一个指针。在哈希索引的数据结构中,索引的哈希值是有序的,但是指针指向的数据行不是有序的。哈希索引哈希值的长度不会依赖于索引列,TINNYINT的索引和大型字符串的索引大小是一样的。所以查找速度还是很快的。但是也有一些缺点:1.只存取了哈希码和指向行的指针,不是值本身,因此不能避免读取行。2.哈希索引不能进行排序,因为它不会按序保存行。3.

8、不支持索引的部分匹配,因为哈希码是所有索引列计算出来的。4.碰撞率很高时,索引维护操作很慢,因为不得读取每一行进行匹配。索引类型Innodb存储引擎可实现自适应的哈希索引,当Innodb注意到一些索引值被频繁访问的时候,它会在B-Tree顶端建立起内存中的索引。这使它能快速的哈希查找。这个过程是全自动的,不能控制也不能配置。空间索引:使用地理空间数据类型,不要求where语句使用最左前

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

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

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