关于sql优化方面

show processlist;查看当前mysql在进行的线程,包括线程的状态,是否锁表,可以实时的查看sql的执行情况,同时对一些锁表的操作进行优化。
查询表是否带索引:show index from table(表名)
explain查看使用索引的情况:
复合索引全值匹配最快,遵循最左前缀法则,在范围查询的情况下,范围查询的
右边是不走索引的,字段运算(如截取匹配)也是不走索引的,数字不加单引号不走索引,因为使用数字后,数据库底层会进行隐式数据转换对字段进行运算。
select查询的数据如果不在索引中会进行回表查询,使用or的情况下索引都会失效
使用like进行模糊匹配,%在前面不走索引,%在后面索引生效,但是可以通过覆盖索引解决这个问题,即select查询的内容为索引列
对于is null 和is not null mysql数据库底层根据数据的比例判断是否走索引还是全表扫描快,如果null少的话,is null 就做索引。in走索引而not in 不走索引

查看索引的使用情况:
show status like ‘Handler_read%’;
show global status like ‘Handler_read%’;

load批量导入数据。最好保持有序:
load data local infile ‘/root/sql1.log’ into table ‘tb_user’ fileds terminated by ‘,’,lines terminated by ‘\n’;
关闭唯一性校验:
set unique_checks=0;

查询sql执行时间及执行花费时间的地方
select @@have_profiling;
select @@profiling;
set profiling=1;
show profile for query 5(这个是query_id);

set optimizer_trace="enabled=on”,end_markers_in_json=on;

set optimizer_trace_max_mem_size=100000;

select * from information_schema.optimizer_trace\G;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值