1. 慢查询
mysql的慢查询功能默认关闭,需要可手动开启。
#查看慢查询相关配置
show variables like '%query%';
#临时开启慢查询
set global slow_query_log = ON;
#查看日志输入类型
show variables like '%log_output%';
#修改日志输出类型为table,默认为none, 设置为table后慢查询语句会存储在slow_log中
set global log_output='TABLE';
#查看慢sql
select * from mysql.slow_log ;
2.索引
索引作用:快速检索
索引本质:数据结构
索引原理: B+树
索引缺点:降低了表的更新速度;索引会占用磁盘空间
索引操作语句:
#通过alter,创建普通索引
alter table add index index_age(age);
#通过create,创建普通索引
create index index_age on user(age);
#删除索引
drop index index_age on user;
#查看表是否使用索引
show index from user
什么时候不需要索引?
表数据太少
频繁的增删改
经常重复且分布平均的字段,例如: 性别为男和女 结果为true或false
频繁更新的字段不合适建索引
索引分类
单列索引(普通索引、主键索引、唯一索引)
组合索引
全文索引
如何给orderby字段创建索引
order by的字段顺序需要和组合索引的顺序一致,否则会出现 Using filesort排序,影响性能
案例
select * from tblA; (此表只有2个字段age和birth)
alter table tblA inx_A_ageBirth(age,birth)
索引失效的几种情况
左右链接创建索引军规
左连接索引建右表
右连接索引建左表