zoukankan      html  css  js  c++  java
  • MYSQL性能优化(1)

    优化步骤

    1.show status 查询服务器状态运行信息

      根据增删改查统计信息可以知道数据库是查询为主还是更新为主,各类型业务大致比例(更新操作 执行与回滚都会计数)

           对于事务,可以通过Com_commit 和Com_rollback 来看到情况,回滚频繁,说明 逻辑可能有问题

          Connections 试图连接数据库次数

          Uptime 工作时间

          Slow_queries 慢查询次数

    2.定位效率较低的SQL语句

        2.1 慢查询日志定位 ,--log-slow-queries[=file_name]启动的时候,mysqld 写 查询时间超过阈值的 SQL语句日志

        2.2 运行时,使用 show processlist 查看 线程,状态,锁等情况,能够实时发现瓶颈,对锁表操作优化

    3 分析低效SQL的执行计划:

        explain或者desc 可以获取 Mysql如何执行 SELECT语句的信息,包括 执行过程 表的连接 与 连接次序,索引使用情况等

    4. 添加索引,优化

    ////////////////////////////

    索引问题

     1.数据文件 和 索引文件 分开存储 提高IO性能Myisam

     2.对于varchar与char,使用前缀索引(不需要使用整个字段)提高性能

     3.存在一些情况,mysql不会使用索引来查询

     4.   show status like 'Handle_read%'

      handler_read_key 值表明一个行被索引读的次数,说明索引使用的情况

           handle_read_rnd_next 高,表明 查询运行低效

    ////////////////////////////

    定期分析表

      analyze table ,check table ,check view,checksum table

    优化表

      optimize table 整理碎片问题

    导入数据到有数据表中 关闭一些东西,可以提高效率(Myisam)

      ALTER TABLE  name DISABLE KEYS;

      导入

      ALTER TABLE  name ENABLE KEYS;

    导入数据到有数据表中 关闭一些东西,可以提高效率(Innodb)

      set unique_check =0,set autocommit=0;

      将数据按照主键排列,导入

           set unique_check =1,set autocommit=1;

  • 相关阅读:
    Linux下安装Tomcat服务器和部署Web应用
    两个有序链表的合并
    一个时间效率为O(n)的排序算法
    五种常用的Web安全认证方式
    接口认证方式
    curl 命令详解~~
    高德地图、腾讯地图、谷歌中国区地图与百度地图坐标系
    CentOS 7 yum 安装与配置 JDK
    PHP调用Google Translate API接口
    关联了微信开放平台的小程序,某些情况无法获取到unionId
  • 原文地址:https://www.cnblogs.com/sofard/p/9915578.html
Copyright © 2011-2022 走看看