首页
|
Linux 基础
|
资讯动态
|
Linux 应用
|
Linux 服务器
|
Linux 开发
|
Linux 安全
|
专题
|
联盟论坛
当前位置:
主页
>
Linux 服务器
>
数据库应用
>文章内容
让PHP网站运转如飞 MySQL 的优化
来源:www.unix5.com 作者:riechelr_hl 发布时间:2007-05-19
逐渐了解SQL服务器以便能为你的问题使用可能最快的SQL构造并避免瓶颈。
优化表布局和查询。
使用复制以获得更快的选择(select)速度。
如果你有一个慢速的网络连接数据库,使用压缩客户/服务器协议。
不要害怕时应用的第一个版本不能完美地移植,在你解决问题时,你总是可以在以后优化它。
九、优化
My
SQL
挑选编译器和编译选项。
位你的系统寻找最好的启动选项。
通读MySQL参考手册并阅读Paul DuBios的《MySQL》一书。(已有中文版-译注)
多用EXPLAIN SELECT、SHOW VARIABLES、SHOW STATUS和SHOW PROCESSLIST。
了解查询优化器的工作原理。
优化表的格式。
维护你的表(myisamchk、CHECK TABLE、 OPTIMIZE TABLE)
使用MySQL的扩展功能以让一切快速完成。
如果你注意到了你把在很多场合需要某些函数,编写MySQLUDF函数。
不要使用表级或列级的GRANT,除非你确实需要。
购买MySQL技术支持以帮助你解决问题:)
十、编译和安装
My
SQL
通过位你的系统挑选可能最好的编译器,你通常可以获得10-30%的性能提高。
在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基准测试来测试最终的二进制代码。
十一、维护
如果可能,偶尔运行一下OPTIMIZE table,这对大量更新的变长行非常重要。
偶尔用myisamchk -a更新一下表中的键码分布统计。记住在做之前关掉MySQL。
如果有碎片文件,可能值得把所有文件复制到另一个磁盘上,清除原来的磁盘并拷回文件。
如果遇到问题,用myisamchk或CHECK table检查表。
用mysqladmin -i10 precesslist extended-status监控MySQL的状态。
用MySQLGUI客户程序,你可以在不同的窗口内监控进程列表和状态。
使用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的默认值。
十三、不同SQL服务器的速度差别(以秒计)
通过键码读取2000000行: NT Linux
mysql 367 249
mysql_odbc 464
db2_odbc 1206
informix_odbc 121126
ms-sql_odbc 1634
oracle_odbc 20800
solid_odbc 877
sybase_odbc 17614
插入350768行: NT Linux
mysql 381 206
mysql_odbc 6
共2页:
上一页
[1]
2 下一页
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见:
>>
论坛入口
[
收藏
] [
推荐
] [
评论(0条)
]
[返回顶部]
[打印本页]
[关闭窗口]
热点文章
·
在Linux x86上安装Oracle数据库1
·
Linux系统下的Oracle数据库编程
·
Linux下免费数据库PostgreSQL开
·
如何在你的Linux机器上安装运行O
·
Oracle开发应用
·
PostgreSQL的热备和恢复
·
Heartbeat_2.0.3配置MySQL5.0.18
·
编制一个Mysql数据库自动备份脚
·
mysql 优化参数(十项)详解设置
·
MySQL数据库系统的常规管理介绍
·
新手入门--全面介绍MySQL的基础
·
Linux系统下Mini SQL数据库开发
相关文章
·
新手入门--全面介绍MySQL的基础
·
Apache2+php4.3.6+MySQL4.0.20+S
·
MySQL和SQL Server,到底选择谁?
·
简介Mysql中的临时表使用方法
·
MySQL数据库中mysqldump命令使用
·
Oracle数据库的备份及恢复策略研
·
关于MySQL数据库的存储引擎详细
·
如何在Oracle里用存储过程定期分
·
如何在你的Linux机器上安装运行O
·
ORACLE数据库的启动和关闭
·
Oracle数据库的备份与恢复
·
MySQL数据库引擎快速指导
本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!