个人经验总结:MySQL数据库优化技巧集锦
、SQL服务器、操作系统、API或应用)并集中全力解决。
使用给予你更快速度/灵活性的扩展。 逐渐了解SQL服务器以便能为你的问题使用可能最快的SQL构造并避免瓶颈。 优化表布局和查询。 使用复制以获得更快的选择(select)速度。 如果你有一个慢速的网络连接数据库,使用压缩客户/服务器协议。 不要害怕时应用的第一个版本不能完美地移植,在你解决问题时,你总是可以在以后优化它。
位你的系统寻找最好的启动选项。 通读MySQL参考手册并阅读Paul DuBios的《MySQL》一书。(已有中文版-译注) 多用EXPLAIN SELECT、SHOW VARIABLES、SHOW STATUS和SHOW PROCESSLIST。 了解查询优化器的工作原理。 优化表的格式。 维护你的表(myisamchk、CHECK TABLE、 OPTIMIZE TABLE) 使用MySQL的扩展功能以让一切快速完成。 如果你注意到了你将在很多场合需要某些函数,编写MySQL UDF函数。 不要使用表级或列级的GRANT,除非你确实需要。 购买MySQL技术支持以帮助你解决问题:)
十、编译和安装MySQL
在Linux/Intel平台上,用pgcc(gcc的奔腾芯片优化版)编译MySQL。然而,二进制代码将只能运行在Intel奔腾CPU上。 对于一种特定的平台,使用MySQL参考手册上推荐的优化选项。 一般地,对特定CPU的原生编译器(如Sparc的Sun Workshop)应该比gcc提供更好的性能,但不总是这样。 用你将使用的字符集编译MySQL。 静态编译生成mysqld的执行文件(用--with-mysqld-ldflags=all-static)并用strip sql/mysqld整理最终的执行文件。 注意,既然MySQL不使用C++扩展,不带扩展支持编译MySQL将赢得巨大的性能提高。 如果操作系统支持原生线程,使用原生线程(而不用mit-pthreads)。 用MySQL基准测试来测试最终的二进制代码。
十一、维护
偶尔用myisamchk -a更新一下表中的键码分布统计。记住在做之前关掉MySQL。 如果有碎片文件,可能值得将所有文件复制到另一个磁盘上,清除原来的磁盘并拷回文件。 如果遇到问题,用myisamchk或CHECK table检查表。 用mysqladmin -i10 precesslist extended-status监控MySQL的状态。 用MySQL GUI客户程序,你可以在不同的窗口内监控进程列表和状态。 使用mysqladmin debug获得有关锁定和性能的信息。
十二 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |