记得当初学习数据库的时候知道我们需要建立一列来作为主键(一般用数字(类型),自动递增),目的是标记唯一一条数据,且用来和其他表进行关联。方便后期做查询,这可能就是我最初对主键的认识吧。慢慢的后面学习各种技术。主键变成了雪花算法(还不错),uuid(字符串hash算法得到)便出现在我们的视野中。同学你也经历这个过程了嘛。
由于工作慢慢接触sql优化,提到sql 优化可能大家最先想到的就是“索引”,有一句话这么说:”合理的设计且使用索引的mysql 是一辆超跑,没有设计和使用索引的mysql就是一辆牛车”---------彩币运维。看到这里是不是觉得索引很重要 ,sql优化当然因素有很多,今天我这里只提索引。
要优化好索引首先就要知道索引的工作结构和概念?给你一分钟想一下 什么是索引?
索引是帮助mysql高效获取数据的排好序的数据结构。
排序和数据结构整明白这个两个东西索引基本就搞定啦 。
索引我们都知道快,是因为他会将我们的数据单独通过表的形式存储起来(大多数存储磁盘地址),那么为什么索引查询就会很快(数量级的区别)单独查询表就不快了?且看下面》》》》》》
数据结构自然少不了二叉树,红黑树,BTree,B+Tree,那么索引的存储是否用到了tree结构,其实mysql索引底层用的是一个B+Tree的数据存储结构,或者是说是一个复杂二叉树存储结构上图》