1.慢查询:

        (1).查看慢查询的日志文件有没有打开show variables like ‘slow_query_log’;
        (2).因为默认是没有开启的所以一般我们需要手动的去开启:set global slow_query_log=on;
        (3).查看慢查询的时间:show variables like ‘long_query_time’;
        (4).explain查看分析SQL执行计划:explain select * from log
        (5).通过explain分析具体是那一条sql的问题:explain 具体的sql语句

2.优化方式:
        (1).学会使用explain关键字分析查询语句的执行计划
        (2).在MySQL中,可以使用EXPLAIN关键字来分析查询语句的执行计划,以帮助优化查询性能。EXPLAIN语句返回一个描述查询执行计划的结果集,包括了查询的操作顺序、使用的索引、表之间的连接方式等信息。
        (3).是否索引失效了
        (4).是否进行了全表扫描
        (5).是否有select * 这种字段
        (6).表的结构是否存在问题
        (7).是否存在联表查询表的数量过多出现笛卡尔积这种

3.sql优化

        (1).插入数据

        insert : 批量插入、手动控制事务、主键顺序插入

        大批量插入:load data local infile.

        (2).主键优化:主键长度尽量短、顺序插入

              推荐使用 :AUTO_INCREMENT 

              不推荐:UUID

        (3).order by优化

        using index : 直接通过索引返回数据,性能高

        using filesort : 需要将返回的结果在排序缓冲区排序

        (4).group by 优化 : 索引,多字段分组满足最左前缀法则

        (5).limit 优化 :覆盖索引+子查询

       (6).count 优化 : 性能:count(字段)<count(主键 id) <count(1)<count(*)

             count(1)与count(*)相差不大。

        (7).update 优化:尽量根据主键/索引字段进行数据更新

        

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部