mysql----查询注意点

具体的优化方法:
    exist和in:
        如果主查询的数据集大,使用in,    select tname from teacher where tid in(x,y,z);
        如果子查询的数据集大,使用exist,select tname from teacher where exist(select * from teacher);
    order by:可能会出现using filesort
        选择单路排序,增加buffer大小  set max_length_sort_size = 
        避免使用select * ...
        复合索引不要跨列使用,避免出现using filesort
        保证全部的排序字段排序的一致性,全升序或者降序
sql慢查询日志:用于记录sql中查询时间超过阈值的sql语句,默认是记录超过10s的日志
                这个开关默认是关闭的。
        检查开关是否开启:show variables like '%slow_query_log%';
        临时开启:set global slow_query_log = 1;
        永久开启:在mysql配置文件中开启
        慢查询阈值:
        show variables like '%loog_query_time%';
        查询被记录的慢查询语句:
        show global status like '%slow_queries%';
        查看记录的慢日志文件:
        cat /var/lib/mysql/localhost-slow.log
mysqldumpslow:使用这个工具来查询慢sql,可通过mysqldumpslow --help来查看使用方法
        在慢查询日志中获取返回记录最多的三个sql
            mysqldumpslow -s r -t 3 /var/lib/mysql/localhost-slow.log
        在慢查询日志中获取访问次数最多的三个sql
            mysqldumpslow -s c -t 3 /var/lib/mysql/localhost-slow.log
        

发布了76 篇原创文章 · 获赞 21 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/shen_chengfeng/article/details/104168123