性能优化

来源:互联网 发布:应急数据采集更新制度 编辑:程序博客网 时间:2024/06/05 10:07

之前总感觉php没啥好学的了,其实还有很多可以学,但是学起来没啥意思,基本都是用框架搞定,后来一位高人指点,发现我的数据库,是个薄弱点,虽然大学期间用过sql


一.mysql优化:sql语句优化

    1.慢查日志的开启和存储

1)查看mysql是否开启慢查询日志
        show variables like 'slow_query_log';


            2)设置没有索引的记录到慢查询日志
        set global log_queries_not_using_indexes=on;


            3)查看超过多长时间的sql进行记录到慢查询日志
        show variables like 'long_query_time'


            4)开启慢查询日志
        set global slow_query_log=on


    2.慢查日志分析工具

        a.mysql自带工具-mysqldumpslow

         执行mysqldumpslow –h可以查看帮助信息。
         主要介绍两个参数-s和-t
         -s 这个是排序参数,可选的有:
         al: 平均锁定时间
         ar: 平均返回记录数
         at: 平均查询时间
         c: 计数
         l: 锁定时间
         r: 返回记录
         t: 查询时间
         -t n 显示头n条记录。

         实例:
         mysqldumpslow -s c -t 20 host-slow.log
         mysqldumpslow -s r -t 20 host-slow.log
         上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。
         mysqldumpslow -t 10 -s t -g “left join” host-slow.log
         这个是按照时间返回前10条里面含有左连接的sql语句。

        b.pt-quety-digest

            #pt-query-digest mysql-slow.log--分析mysql-slow.log这个慢查询日志文件


    3.优化

        a.count():

            

        b.max():通过索引

        c.子查询

        d.group by

        e.limit查询


二.索引优化

    1.合适的建立索引

     2.优化索引的方法

    3.维护索引


三.数据库结构优化

    1.合适的数据类型

    2.范式化

    3.反范式化话

    4.垂直拆分

    5.水平拆分


四系统配置优化

    1.数据库系统配置

    2.mysql配置文件

    3.第三方配置工具使用

五.服务器硬件优化

    1.硬件


0 0