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;

原文地址:https://www.cnblogs.com/sofard/p/9915578.html