索引1(总结)

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。索引1(总结),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

索引的作用

	索引的出现为了提高查询的效率

可以把索引类比于书的目录,索引就是每一张表的目录

索引的常见模型

哈希表(适合等值查询)

hash表的实现原理: 把值放在数组中,用一个hash函数把key换算成一个确定的位置
然后把Value放在这个数组的位置

优点: 增加新的数据时速度很快
缺点: 做区间查询的速度很慢

有序数组

优点: 等值查询和区间查询都很快
缺点: 新增数据的成本太高

二叉搜索树

为了保证二叉树的搜索复杂度是O(log(N)),就需要保证这棵树就是平衡二叉树,为了做这个保证,更新的时间复杂度也是O(log(N))

mysql里面InnoDB的索引

1. 在InnoDB中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表叫索引组织表
2. InnoDB使用了B+树索引模型,所以数据都是存储在B+树里面的
3. 每一个索引在InnoDB里面对应一个B+树

InnoDB索引的分类

主键索引(聚簇索引)

只是叶子节点存放数据信息,并且叶子节点形成一个链表(双向链表),用来满足范围查询

非主键索引(二级索引)

二级索引的叶子节点放的是主键ID的值,要通过主键ID来访问主键索引,然后从主键索引上获取数据

InnoDB索引的维护

1. B+树为了维护索引的有序性,在插入新值的时候要做必要的维护,有可能会造成节点的分裂,从而增大IO消耗,因此最好还是使用自增主键索引
2. 主键索引字段不宜过大,因为非主键索引的叶子节点会存放主键索引的值,比较浪费空间

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/202561.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!