mysql终级优化

经过半年来与WJL 主服务器的战斗,经过无数次WJL主服务器的DOWN机与库表修复,得到以
下MYSQL终极优化经验,与各位分享。
一、一定要有MYSQL最新的手册,manual,chm格式的最好,方便搜索与作书签;
二、不管是linux还是bsd,一定要选择最稳定的MYSQL版本。版本太新不好!!!
比如,要是装个MYSQL5。X,那现有的服务器多半要重编PHP,因为人家5。0用了新的认
证协议;我就是吃了这个亏,浪费N多时间;(PHP的问题这里不讨论)
三、一定要多建库,不要把什么都放在一个库里;一般一个库就是一个目录,磁盘IO性能可
可以提升不少,而且MYSQL会用一个新的进程来处理不同库的请求;
四、把mysql/data目录放在一个独立的磁盘上,与WEB所在的磁盘分开,降底IO负荷;
五、根据服务器硬盘条件合理配置my.cnf;
back_log:默认为50,加大到200;
interactive_timeout:原为28800,改小;
key_buffer_size:默认8M,my.ini-huge推荐为384M,WJL主机内存为1G,设为200
m左右,并根据高峰时的内换页平率变;内存越大,这个值可设越高,但不能太高。
max_connections:100,加大1024。
record_buffer:加大,当explan sql时发现file sort又多又慢时,加大,16M;
table_cache:64->512;
关log-bin如果不复制备服务。
一般的信息发布程序不要用InnoDB事务表,事务与存储过程必竟比吃资源。

六、如果有条件就加大内存,如果内存不足,用另一台机器作为专用的MYSQL服务器,交叉
线与WEB或其它应用主服务器(如网游:WOW等)对联,用千兆网卡;
七、最好用linux,不要用BSD作MYSQL服务器。BSD的MYSQL版本不全;
以上只是一部分,欢迎大家补充指正!
希望明天晚上WJL主服务器不要再烂。再烂只有负荷分开。。。。
贴个1G内存,日访问量在10W以上(有ipb论坛,在线150人左右)的WJLWEB服务器的MYSQL配置:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
################################# 2005 01 06
port            = 3306
skip-locking

key_buffer = 128M
max_allowed_packet = 1M
table_cache = 512
sort_buffer = 16M
read_buffer_size = 2M
#thread_cache = 8
query_cache_size= 32M
# Try number of CPU’s*2 for thread_concurrency
# thread_concurrency = 8
# by yejun for speed#############
back_log                =500
interactive_timeout     =7200
net_buffer_length       =64K
max_connections         =1000
record_buffer           =16M
thread_cache_size       =80
wait_timeout            =7200
#################################

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
innodb_log_arch_dir = /var/lib/mysql/
# You can set .._buffer_pool_size up to 50 – 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

关于 admin

给我一个支点,我可以创造一个杠杆。
此条目发表在 未分类 分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>