主页 > InnoDB存储引擎 > MySQL索引与二分查找法

MySQL索引与二分查找法

小牛教程 InnoDB存储引擎 2021年06月16日

①什么是索引:

索引是一种数据结构,添加索引的字段的值是存储在b+tree叶子节点上,并经过排序存放,默认是升序方向;可以优化检索速度,提升查询性能;innodb存储引擎默认使用b+tree索引,还支持哈希索引、全文索引;

select * from orders where o_orderDATE='1996-01-02';

637 rows in set (1.07 sec) 普通索引

637 rows in set (13.55 sec) 无索引

②:索引的优缺点:

优点:

。提高查询性能

。减少锁等待和死锁

。减少主从复制延迟时间

缺点:

。占用更多存储空间(磁盘和内存)

。索引的维护成本(排序、b+tree split、合并)

。过多的索引会增加优化器负担

③:索引的最大长度:默认最大长度是767字节;innodb_large_prefix | ON,3072字节;

④:二分查找法:折半查找法

作用:用于查找一组有序的记录数组中的某一记录;每查找一次,查找区就会缩小一半

5 9 11 22 33 45 67

33 45 67

查找45

⑤:mysql一张表存多少数据后,索引性能就会下降?5.7 | 8.0

表中存上亿或者几千万的数据,mysql索引性能差距是非常小的;

原因一:不支持online ddl ,会阻塞DML语句

原因二:之前版本会b+tree加一张大锁,现在版本只会对操作的页进行加锁



广告位
标签: mysql索引