>  기사  >  데이터 베이스  >  MySQL的101个调节和优化的提示

MySQL的101个调节和优化的提示

WBOY
WBOY원래의
2016-06-07 15:18:04776검색

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 查询优化: 63. 使用慢查询日志去发现慢查询。 64. 使用执行计划去判断查询是否正常运行。 65. 总是去测试你的查询看看是否他们运行在最佳状态下 ?久而久之性能总会变化。 66. 避免在整个表上使用cou

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

 

  查询优化:

  63. 使用慢查询日志去发现慢查询。

  64. 使用执行计划去判断查询是否正常运行。

  65. 总是去测试你的查询看看是否他们运行在最佳状态下 ?久而久之性能总会变化。

  66. 避免在整个表上使用count(*),它可能锁住整张表。

  67. 使查询保持一致以便后续相似的查询可以使用查询缓存。

  68. 在适当的情形下使用GROUP BY而不是DISTINCT.

  69. 在WHERE, GROUP BY和ORDER BY子句中使用有索引的列。

  70. 保持索引简单,不在多个索引中包含同一个列。

  71. 有时候MySQL会使用错误的索引,对于这种情况使用USE INDEX.

  72. 检查使用SQL_MODE=STRICT的问题。

  73. 对于记录数小于5的索引字段,在UNION的时候使用LIMIT不是是用OR.

  74. 为了 避免在更新前SELECT,使用INSERT ON DUPLICATE KEY或者INSERT IGNORE ,不要用UPDATE去实现。

  75. 不要使用 MAX,使用索引字段和ORDER BY子句。

  76. 避免使用ORDER BY RAND()。

  77.LIMIT M,N实际上可以减缓查询在某些情况下,有节制地使用。

  78.在WHERE子句中使用UNION代替子查询。

  79.对于UPDATES(更新),使用 SHARE MODE(共享模式),以防止独占锁。

  80.在重新启动的MySQL,记得来温暖你的数据库,以确保您的数据在内存和查询速度快。

  81.使用DROP TABLE,CREATE TABLE DELETE FROM从表中删除所有数据。

  82.最小化的数据在查询你需要的数据,使用*消耗大量的时间。

  83.考虑持久连接,而不是多个连接,以减少开销。

  84.基准查询,包括使用服务器上的负载,有时一个简单的查询可以影响其他查询。

  85.当负载增加您的服务器上,使用SHOW PROCESSLIST查看慢的和有问题的查询。

  86.在开发环境中产生的镜像数据中 测试的所有可疑的查询。

  MySQL 备份过程:

  87. 从二级复制服务器上进行备份。

  88. 在进行备份期间停止复制,以避免在数据依赖和外键约束上出现不一致。

  89. 彻底停止MySQL,从数据库文件进行备份。

  90. 如果使用 MySQL dump进行备份,请同时备份二进制日志文件 ? 确保复制没有中断。

  91. 不要信任LVM 快照 ? 这很可能产生数据不一致,将来会给你带来麻烦。

  92. 为了更容易进行单表恢复,以表为单位导出数据 ? 如果数据是与其他表隔离的。

  93. 当使用mysqldump时请使用 ?opt.

  94. 在备份之前检查和优化表。

  95. 为了更快的进行导入,在导入时临时禁用外键约束。

  96. 为了更快的进行导入,在导入时临时禁用唯一性检测。

  97. 在每一次备份后计算数据库,表以及索引的尺寸,以便更够监控数据尺寸的增长。

  98. 通过自动调度脚本监控复制实例的错误和延迟。

  99. 定期执行备份。

  100. 定期测试你的备份。

  最后 101: 执行MySQL 监控: Monitis Unveils The World's First Free On-demand MySQL Monitoring.

  [1] [2] 

MySQL的101个调节和优化的提示

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.