假设有test_2表,表结构如下
基本操作
创建索引
create [unique|fulltext] index 索引名称 on 表名(添加索引的列名,...);
-- eg
-- create index idx_test_name on test_2(name);
-- create index idx_test_pro_age_sta on test_2(profession, age, status);
查看索引
show index from 表名;
-- eg
-- show index from test_2;
删除索引
drop index 索引名称 on 表名
-- drop index idx_test_name on test_2;
性能分析
查看执行频次
show global status like 'com_______';
运行结果
慢查询日志
profile详情
-- 展示profiles
show profiles ;
-- 查看指定query_id的sql语句各个阶段的耗时情况
-- eg查询上表第十条
show profile for query 10;
-- 查看指定query_id的sql语句cpu的使用情况
show profile cpu for query 10;
结果
索引使用
左前缀法则
索引提升查询速度时会遵循最左前缀法则,也就是第一个添加索引的列名(下列eg:profession)必须在查询语句中,才能通过索引提升查询速度。
create index idx_test_pro_age_sta on test_2(profession, age, status);
范围查询
第一句会造成索引失效,解决办法就是上方语句
换成>=
索引列运算