学习随笔201023

mysql的索引

  使用index关键字

  create index index_name on table_name(field_name); 新加索引

  drop删除索引

  alter更改

 

为什么使用like时索引会失效

  因为最左匹配原则,比如在我们的结构中存在这样一组数据(1,1),(1,5),(1,6),(2,1),(2,4),(,2,5)

按照最左匹配原则,1与2是有序的,1后的数据1,5,6依然有序,2以后的数据1,4,5依然有序,但是使用like关键字之后,如果将‘%’放在左边,那么等于我们失去了1与2,剩下的数据在排列时变成了1,5,6,1,4,5,这几个数据明显是无序的,因此导致了索引失效。

 

那么为什么要使用B+树呢,为什么不使用哈希值或者其他结构

  首先,我们已知在数据结构中哈希值是存取速度最快的,但是哈希值并不有序,而我们使用数据库的时候需要完成很多业务,比如说我们需要查询某两个数字之间的数据,那么无序的哈希值并不能满足我们的需求,所以需要使用有序的树结构,那么为什么不能使用二分查找树,因为二分查找树在查找数据的时候虽然很快,但同样的,必须要循坏滚动来寻找数据,效率非常低下,在之后的优化中提出了采用B树,因为B树在一个节点上并不一定只能存储一条数据,但是就算存储两条三条也没有从根本上解决我们的问题,之后进行再一次优化产生了B+树,它在B树之上增加了叶子结点的一条链式结构,在范围查找时只需要找到头尾节点即可。

    

posted @ 2020-10-23 20:18  亲爱的达瓦里氏  阅读(34)  评论(0)    收藏  举报