MySQL数据库优化(一)
mysql数据库优化的目的
一 避免网页访问错误
    1数据库连接timeout产生页面5xx错误
    2慢查询造成页面无法加载
    3阻塞造成数据无法提交
二 增加数据库的稳定性
三 优化用户体验
    1流畅的页面访问速度
    2良好的网站功能体验
几个优化方面
       
    硬件-系统配置-数据库表结构-SQL及索引
1成本:高--------------->--------------->低
2效果:低---------------->-------------->高
优化方面
一 SQL语句优化
  1 SQL及索引优化
  如何发现有问题的SQL?
  使用MySQL慢查询日志对有效率问题的SQL进行监控
  下面语句可以开启慢查询日志:
  show variables like 'slow_query_log'  查看这个是否开启慢查询日志
  set global slow_query_log_file ='/home/mysql/sql_log/mysql-slow.log'  慢查询日志存储的文件位置在哪里
  set global log_queries_not_using_indexs=on  指定是否要把没有使用索引的SQL,记录到慢查询的日志中
  set global long_query_time =1  指定一个时间,超过这个时间如1s之后,查询记录到查询日志中
  慢查询日志包含的内容
  1 执行sql的主机信息
  2 SQL执行的信息
  3 SQL执行的时间
  4 SQL执行的内容
  MySQL慢查询日志
  工具一
        mysqlsla---mysqldumpslow 输出
  
  工具二
        pt-query-digest
  如何分析SQL语句
   使用explain查询SQL的执行计划 如explain select username from user;
Count()和Max()优化

建立索引后


 






























 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号