索引的本质其实就是一种排好序的数据结构。
1.必须遵循唯一的索引原则,将其使用的作为索引的字段必须是唯一的,这样涉及的原则跟好处就是,唯一的索引会避免数据库去查询的时候会产生两样性,从而导致索引的查找的速率大大降低。
2.索引的设计要根据where关键字跟order by关键字还有 gruop by关键字后面的字段进行建立。
3.MySQL中会针对主键的索引进行相对应的维护,这个主键索引的数据结构为B+树的结构,这个我们称之为“聚簇索引”,针对于非主键(我们大多数的时候会进行建立联合索引的操作)会针对索引的字段进行依次排序,然后从第一个字段值的比较,第一个字段的值相同就针对下一个字段进行比较,依次往后面进行推。其中联合索引中的字段值都是一样的,那么就根据主键来排序。另外“聚簇索引(主键索引)的B+树中保存的是一行记录的所有信息,非聚簇索引仅仅保存索引字段值和主键字段值”。
4.主键索引,主键索引其实较为简单,但是中间有些需要注意的点,当我们要设计主键的时候,必须要对主键设计的时候一定要设计成自增的,而且这里面强调“非常不建议使用UUID作为主键进行使用”,为什么呢?因为UUID为无序的,MySQL在维护“聚簇索引的时候依照的都是主键的顺序进行排序的”,也就是说每页的每一个数据一定是按照主键的从小到大的排序的,而且,在数据与数据之间是通过单向链表进行相互链接的,上一页的最大的主键的值一定是小于下一个数据页的最小的值,数据也跟数据页之间通过双向链表进行相互的链接,进行维护的。
唯一索引跟主键索引有些许的类似,但是唯一索引不一定是自增的,所以维护唯一索引的成本是大于主键索引的。
5.避免“大字段”的建立索引
换句话说就是“尽量使用数据量小的字段进行作为索引”。
其实可以进行思考的问题,当我们进行使用索引创建的时候,也会进行耗费资源,那么相同的条件下,我们消耗的资源然是越小越好。
标签:段值,原则,建立,聚簇,索引,排序,主键,进行 From: https://www.cnblogs.com/youzhiyuanxiaoapeng/p/17567615.html