Linux下的MySQL性能调优-让你的MySQL运行的更快
052010.09
作者:zxing 发布:2010-09-05 01:27 字符数:414 分类:Linux, 数据库 阅读: 604 次 1条评论
数据库在WEB系统中充当了极其重要的角色,它的性能直接关系到整个服务器的性能,此文并非完全我自己的创作但也包含了我自己的一些体会,在这里权作记录下来留给自己以后继续研究也分享给更多的朋友。
MySQL配置文件为/etc/mysql/my.cnf 而其中“[mysqld]”配置影响着你的数据库性能,其他段落并不是很重要,所以这里仅列出了“[mysqld]”配置段的信息。
INI
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
user=mysql
socket=/var/run/mysqld/mysqld.sock
port=3306
basedir=/usr
datadir=/var/lib/mysql
tmpdir=/tmp
#默认存储引擎
default_table_type=InnoDB
#避免MySQL的外部锁定
skip-external-locking
#禁止DNS解析这个选项将不允许使用localhost进行用户验证而需要使用127.0.0.1
skip-name-resolve
#修复选项
myisam-recover=BACKUP
#日志选项
expire_logs_days=10
max_binlog_size=100M
#错误日志
log_error=/var/log/mysql/error.log
#查询排序缓冲区独占
sort_buffer_size=6M
#读查询操作缓冲区独占
read_buffer_size=4M
#联合查询操作缓冲区独占
join_buffer_size=8M
#总体缓存
thread_stack=256K
table_cache=128k
myisam_sort_buffer_size=64M
thread_cache_size=64
query_cache_limit=32M
query_cache_size=64M
#最长连接时间
wait_timeout=30
#操作线程
thread_concurrency=8
#MyISAM索引缓冲区
key_buffer_size=256M
#Innodb
#Innodb最重要的参数缓存innodb表的索引,数据,插入数据时的缓冲
innodb_buffer_pool_size=1024M
#用来存放Innodb的内部目录如果表比较多可以适当调大
innodb_additional_mem_pool_size=4M
innodb_data_file_path=ibdata_1:384M;ibdata_2:384M;ibdata_3:384M:autoextend
#文件读写IO,这个参数只在Windows上起作用,在LINUX上只会等于4
innodb_file_io_threads=4
innodb_thread_concurrency=16
#事务的提交方式默认为1,0或2可以提高性能
#0:每秒一次写入日志文件,并刷新到到磁盘,事务提交时不进行操作。崩溃时丢失最后一秒的事务。
#1:每次提交都写入日志文件,并刷新到磁盘。不丢任何一个事务。
#2:提交后写入文件,但不刷新到磁盘,日志刷新值为2时每秒一次刷新到磁盘。崩溃时会丢失事务。
innodb_flush_log_at_trx_commit=2
#日志的大小
innodb_log_file_size=32M
#事务缓冲无需太大MySQL会每秒将内存中的信息写入磁盘中
innodb_log_buffer_size=8M
#指定日志组个数
innodb_log_files_in_group=3
#禁止系统缓存直接写入磁盘windows下无需设置
innodb_flush_method=O_DIRECT
#控制Innodb的脏页在缓冲中的最高百分比
innodb_max_dirty_pages_pct=90
#锁定时间长度
innodb_lock_wait_timeout=30
提醒DBA们MySQL并非一个文件即可优化的,我给出的配置仅仅适合我自己的服务器:4G内存/单志强CPU!另外其他软件也会影响服务器总体性能,所以需要你不断查看服务器的各种状态变量,根据实际情况不断调整出最适合你服务器的配置。
最后,还需要提醒程序员,MySQL性能调优仅可提供一个快速的平台,最终程序性能还需要在查询语句,表结构上下功夫的,往往一个极耗资源的查询断送掉前面所有的性能调整......