《数据库索引》PPT课件.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《数据库索引》PPT课件.pptx》由会员分享,可在线阅读,更多相关《《数据库索引》PPT课件.pptx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MySql数据库索引索引基础 索引是提高查询速度的最重要的工具。当然还有其它的一些技术可供使用,但是一般来说引起最大性能差异的都是索引的正确使用与否。为了满足应用的高效数据查询需要,选择合适的表类型以及数据类型也至关重要。建表-表类型MySQL中表的类型表现为不同的存储引擎,同一种存储引擎在不同的应用中表现出的性能差异也是不容忽略的重要因素。因此,在建表之初应当正确选择表的类型。MyISAM和InnoDB两种使用比较多的存储引擎,MyISAM类型(不支持事务,不支持外键,对访问完整性无要求)在select操作多的应用中优势明显;InnoDB在insert、update操作多的应用中优势明显。索
2、引基础建表-数据类型高效的查询也要求在合适的表字段上使用好的索引策略,所以创建表的字段类型选择对于快速查询也有很重要的影响。选择数据类型来帮助提高查询运行速度。把数据列定义成不能为空(NOT NULL)。这会使处理速度更快,需要的存储更少。它有时候还简化了查询,因为在某些情况下不需要检查值的NULL属性。考虑使用ENUM数据列。如果某个数据列的基数很低(包含的不同的值数量有限),那么可以考虑把它转换为ENUM列。ENUM值可以被更快地处理,因为它们在内部表现为数值。索引基础 以下是几种常用数据类型在MySQL中的性能顺序(从高到低)INT CHAR VARCHAR TEXTENUM介于INT与
3、CHAR性能行之间;在相同数据类型的情况下,长度短的性能更高,因此在建表时要充分考虑每个字段最合适的类型及长度。索引类型 B-Tree索引一般来说,MySQL 中的 B-Tree 索引的物理文件大多是以 Balance Tree 的结构来存储的,也就是所有实际需要的数据都存放于 Tree 的Leaf Node,而且到任何一个 Leaf Node的最短路径的长度都是完全相同的,所以把它称之为 B-Tree 索引。不过,可能各种数据库(或 MySQL 的各种存储引擎)在存放自己的 B-Tree 索引的时候会对存储结构稍作改造。如 InnoDB 存储引擎的 B-Tree 索引使用的存储结构实际上是
4、B+Tree,在 B-Tree 数据结构的基础上做了很小的改造,在每一个 Leaf Node 上面除了存放索引键的相关信息之外,还存储了指向与该 Leaf Node 相邻的后一个 Leaf Node 的指针信息,这主要是为了加快检索多个相邻 Leaf Node 的效率。索引类型在 InnoDB 存储引擎中,存在两种不同形式的索引,一种是 Cluster 形式的主键索引(Primary Key),另外一种则是和其他存储引擎(如MyISAM存储引擎)存放形式基本相同的普通 B-Tree 索引,这种索引在 InnoDB 存储引擎中被称为 Secondary Index。索引分类主键索引与第二索引索引
5、类型使用B-Tree索引的查询类型B-Tree索引能够很好的用于全键值,键值范围以及键前缀的索引查找,它只有在查找时候使用了最左前缀的时候还有用,有效的查询类型如下:匹配全名:全键值匹配指和索引中的所有列匹配。匹配最左前缀:按照索引顺序,只匹配前几列。匹配列前缀:按照这种索引顺序,只匹配索引第一列中以某字符串开头的所有结果。匹配范围值:可以查找大于某一个值且小于某一个值的集合,但是只能用于第一列。索引类型精确匹配一部分,并且部分匹配另一部分:查找索引前几个字段精确匹配,后面一个字段的模糊匹配。只访问索引的查询:B-Tree索引通常能支持只访问索引的查询,它不需要访问数据行(覆盖索引)。上面的查
6、找方式适用于查找,同样也适用于order by排序。B-Tree索引的局限:1.没有从索引列的最左边开始将不起作用。2.不能跳过索引中的列,不然只有索引前一部分的索引生效。3.不能优化第一个范围条件右边的列。索引类型哈希索引 对于每一行,存储引擎根据被索引的列计算出哈希码,它是一个很小的值,并且有可能和其它行的哈希码不同,它把哈希码保存到索引中,并且保存了一个哈希表中每一行的一个指针。在哈希索引的数据结构中,索引的哈希值是有序的,但是指针指向的数据行不是有序的。哈希索引哈希值的长度不会依赖于索引列,TINNYINT的索引和大型字符串的索引大小是一样的。所以查找速度还是很快的。但是也有一些缺点:
7、1.只存取了哈希码和指向行的指针,不是值本身,因此不能避免读取行。2.哈希索引不能进行排序,因为它不会按序保存行。3.不支持索引的部分匹配,因为哈希码是所有索引列计算出来的。4.碰撞率很高时,索引维护操作很慢,因为不得读取每一行进行匹配。索引类型 Innodb存储引擎可实现自适应的哈希索引,当Innodb注意到一些索引值被频繁访问的时候,它会在B-Tree顶端建立起内存中的索引。这使它能快速的哈希查找。这个过程是全自动的,不能控制也不能配置。空间索引:使用地理空间数据类型,不要求where语句使用最左前缀,全方位的索引数据查找。全文索引:它主要是从文本中查找关键字不是直接和索引中的值比较。它是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库索引 数据库 索引 PPT 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内