MySQL 配置文件优化
1.当写入时,使用 innodb_flush_method=O_DIRECT 来避免双缓冲。
2.避免使用 O_DIRECT 和 EXT3 文件系统 – 你将序列化所有要写入的。
3.分配足够的 innodb_buffer_pool_size 来加载整个 InnoDB 文件到内存中– 少从磁盘中读取。
4.不要将 innodb_log_file_size 参数设置太大, 这样可以更快同时有更多的磁盘空间 – 丢掉多的日志通常是好的,在数据库崩溃后可以降低恢复数据库的时间。
5.不要混用 innodb_thread_concurrency 和 thread_concurrency 参数– 这2个值是不兼容的。
6.分配一个极小的数量给 max_connections 参数 – 太多的连接会用尽RAM并锁定MySQL服务。
7.保持 thread_cache 在一个相对较高的数字,大约 16 – 防止打开连接时缓慢。
8.使用skip-name-resolve参数 – 去掉 DNS 查找。
9.如果你的查询都是重复的,并且数据不常常发生变化,那么可以使用查询缓存。但是如果你的数据经常发生变化,那么使用查询缓存会让你感到失望。
10.增大temp_table_size值,以防止写入磁盘
11.增大max_heap_table_size值,以防止写入磁盘
12.不要把sort_buffer_size值设置的太高,否则的话你的内存将会很快耗尽
13.根据key_read_requests和key_reads值来决定key_buffer的大小,一般情况下key_read_requests应该比key_reads值高,否则你不能高效的使用key_buffer
14.将innodb_flush_log_at_trx_commit设置为0将会提高性能,但是如果你要保持默认值(1)的话,那么你就要确保数据的完整性,同时你也要确保复制不会滞后。
15.你要有一个测试环境,来测试你的配置,并且在不影响正常生产的情况下,可以常常进行重启。
优化MySQL的配置
my.ini
port=3306 默认端口是3306
max_connections=100 # 最大连接数/最大并发数,一般网站调整到 1000 左右 ,可以修改到2000,再大没有用
query_cache_size=15M # 调整查询缓存的大小
[innodb]
innodb_additional_mem_pool_size=64M
innodb_buffer_pool_size=1G
[myisam]
key_buffer_size #需要调整
调整参数还要看状态,用 show status 可以看到当前状态,以决定该调整哪些参数
如果你的机器内存超过4G,则应当采用64位操作系统和64位MySQL5.5.19