关于Mysql优化的技巧(更新中)

 

十一、维护

  • 如果可能,偶尔运行一下OPTIMIZE table,这对大量更新的变长行非常重要。
  • 偶尔用myisamchk -a更新一下表中的键码分布统计。记住在做之前关掉MySQL。
  • 如果有碎片文件,可能值得将所有文件复制到另一个磁盘上,清除原来的磁盘并拷回文件。
  • 如果遇到问题,用myisamchk或CHECK table检查表。
  • 用mysqladmin -i10 precesslist extended-status监控MySQL的状态。
  • 用MySQL GUI客户程序,你可以在不同的窗口内监控进程列表和状态。
  • 使用mysqladmin debug获得有关锁定和性能的信息。


十二、优化SQL

扬SQL之长,其它事情交由应用去做。使用SQL服务器来做:

  • 找出基于WHERE子句的行。
  • JOIN表
  • GROUP BY
  • ORDER BY
  • DISTINCT

不要使用SQL来做:

  • 检验数据(如日期)
  • 成为一只计算器

技巧:

  • 明智地使用键码。
  • 键码适合搜索,但不适合索引列的插入/更新。
  • 保持数据为数据库第三范式,但不要担心冗余信息或这如果你需要更快的速度,创建总结表。
  • 在大表上不做GROUP BY,相反创建大表的总结表并查询它。
  • UPDATE table set count=count+1 where key_column=constant非常快。
  • 对于大表,或许最好偶尔生成总结表而不是一直保持总结表。
  • 充分利用INSERT的默认值。
posted on 2008-04-17 08:39 Henry 阅读(276) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。