福州网站建设招商娄底企业网站建设公司
福州网站建设招商,娄底企业网站建设公司,加快网站访问速度,智能网站搭建索引的设计原则 索引覆盖是什么#xff1a; 索引#xff08;在MySQL中也叫做“键#xff08;key#xff09;”#xff09; 是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。
索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时#xff0c;索引… 索引的设计原则 索引覆盖是什么 索引在MySQL中也叫做“键key” 是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。
索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时索引对性能的影响跃愈发重要。在数据量较小且负载较低时不恰当的索引对性能的影响可能还不明显但是当数据量逐渐增大时性能则会急剧下降。
一、索引基础
Q1索引是如何工作的
A1要理解MySQL中索引是如何工作的最简单是方法就是区看一看一本书的目录。倘若想在一本书中找到某个特定命题一般会先看书的“索引”找到对应的页码。
那么在MySQL中存储引擎的用类似的方法使用索引它先在索引中找到对应值然后根据匹配的索引记录找到对应的数据行。
Q2MySQL支持的索引的类型以及优缺点
A2B-Tree 索引、哈希索引、空间数据索引、全文索引等其他索引。
B-Tree通常意味着所有的值都是按顺序存储的并且每一个叶子页到跟的距离相同。叶子页比较特殊它的指针指向的是被索引的数据而不是其他的节点页。 图1 B-Tree 从技术上来说是Btree索引树种的部分条目示例
回想BTree的查找操作进行查找操作时首先在根节点进行二分查找找到一个 key 所在的指针然后递归地在指针所指向的节点进行查 找。直到查找到叶子节点然后在叶子节点上进行二分查找找出 key 所对应的 data 。
这也就意味着B-Tree索引能够加快数据的访问速度因为存储引擎不再需要进行全表扫描来获取需要的数据取而代之的是从索引的根节点开始进行搜索。根节点的槽中存放了指向子节点的指针存储引擎很具这些指针向下层查找。通过比较节点页的值和要查找的值可以找到合适的指针进入下层子节点这些指针实际上定义了节点页中的上限和下限。
那么有哪些可以使用B-Tree索引的查询类型
1全值匹配
2匹配最左前缀
3匹配列前缀
4匹配范围值
5精确匹配某一列并范围匹配另外一列
6只范围跟索引的查询
除了上述适用之外它也存在局限性
1如果不是按照索引的最左列开始查找那么无法使用索引
2不能跳过索引中的列
3如果查询中有某个列的范围查询则其右边所有列都无法使用索引优化查询。 哈希索引基于哈希表实现只有精确匹配索引所有列的查询才有效。对于每一行数据存储引擎都会对所有的索引列计算一个哈希码。哈希索引将所有的哈希码存储在索引中同时在哈希表中保存指向每个数据行的指针。
限制之处
1哈希索引只包含哈希值和行指针而不存储字段值。
2哈希索引数据不是按照索引值的顺序排序的所以无法用于排序。
3不支持部分索引列匹配查找。
4只支持等值比较查询
5哈希冲突多的话索引维护操作的代价也会很高。 空间数据索引R-Tree
MyISAM 表支持空间索引可以用作地理数据存储。这类索引无须前缀查询。空间索引会从所有维度来索引数据。这一类型索引接触的很少以后碰到再做详细总结。 全文索引这是一种特殊类型的索引它查找的是文本中的关键词。 知识点
【mysql】索引的基本原理_哔哩哔哩_bilibili
【mysql】索引的设计原则_哔哩哔哩_bilibili
【mysql】索引覆盖是什么_哔哩哔哩_bilibili
【2023年面试】mysql索引的基本原理_哔哩哔哩_bilibili
【MySQL】聚集索引和非聚集索引 - 知乎
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89696.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!