最简单的方式--全表扫描,普遍认为很慢。索引类似于字典,通过索引快速查询数据。
主键、唯一键以及普通键等。
二叉查找树上阵
二分查找 O(logn)
缺点是退化成链表:O(n)
B 树
从图中可以看出,节点信息包括:关键字和指向孩子的指针
设计这样的原因:尽可能少IO操作
B+ 树
B+树更适合用来做存储索引:
Oracle使用,锁粒度非常大,不适合高并发系统
.frm
.ibd
.frm
.MYI
.MYD
具体场景具体分析,只提出大致思路:
SHOW variables like '%quer%';
slow_query_log
slow_query_log_file
long_query_time
SHOW STATUS like '%slow_queries%'; # 查询慢查询次数
SET GLOBAL slow_query_log = on;
SET GLOBAL long_query_time = 1;
SELECT count(id) from person_info_large;
SELECT name from person_info_large order by name desc;
Explain SELECT name from person_info_large order by name desc;