查询优化:
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.