学习随笔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树之上增加了叶子结点的一条链式结构,在范围查找时只需要找到头尾节点即可。

浙公网安备 33010602011771号