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;

  • 相关阅读:
    斯坦福ML公开课笔记15—隐含语义索引、神秘值分解、独立成分分析
    [cocos2d-x]屏幕自适应解决的方法
    【机器学习实验】学习Python来分类现实世界的数据
    按花生酱,赞不绝口——敏捷12准则的敏捷解释
    linux命令笔记之ls
    HTML5 Canvas动画效果实现原理
    互联网+时代的人生必修课—逆商
    WebService的相关使用
    将一个链表中的结点依照奇偶分成两个链表
    web开发性能优化---用户体验篇
  • 原文地址:https://www.cnblogs.com/sofard/p/9915578.html
Copyright © 2011-2022 走看看