Mysql 服务配置优化

来源:互联网 发布:飞豆打印软件免费版 编辑:程序博客网 时间:2024/06/05 16:27


mysql参数的优化:

1:缓存设置,内存中会为MySQL保留部分的缓冲区。这些缓冲区可以提高MySQL的速度。缓冲区的大小都是在MySQL的配置文件中进行设置的。

2:其他设置,有些也是非常关键的。

3:最好有一个测试环境,便于测试你的配置,可以经常重启,不会影响生产环境。

缓存设置:

使用innodb_flush_method=O_DIRECT 避免写的时候出现双缓冲区

key_buffer_size:表示索引缓存的大小。这个值越大,使用索引进行查询的速度就越快

Query_cache_type:表示查询缓存区的开启状态。0表示关闭,1表示开启。

query_cache_size:表示查询缓冲区的大小。使用查询缓存区可以提高查询的速度。这个方式只使用与修改操作少且经常执行相同的查询操作的情况;默认值是0.

Sort_buffer_size排序缓存区的大小,这个值越大,排序就越快。值设置的太高 — 可能导致连接很快耗尽所有内存。

Innodb_buffer_pool_size:来将整个InnoDB文件加载到内存— 减少从磁盘上读。表示InnoDB类型的表和索引的最大缓存。这个值越大,查询的速度就会越快。这个值太大了就会影响操作系统的性能。

其他设置:

Max_connections表示数据库的最大连接数。这个连接数不是越大越好,因为连接会浪费内存的资源。太多的连接将耗尽你的RAM,导致整个MySQL服务器被锁定。

table_cache表示同时打开的表的个数。这个值越大,能同时打开的表的个数就越多。这个值不是越大越好,因为同时打开的表过多会影响操作系统的性能。

避免使用 O_DIRECT 和 EXT3 文件系统 — 这会把所有写入的东西序列化。

不要让innodb_log_file_size 太大,这样能够更快,也有更多的磁盘空间 — 经常刷新有利降低发生故障时的恢复时间。

不要同时使用innodb_thread_concurrency 和 thread_concurrency 变量— 这两个值不能兼容。

:保持 thread_cache在一个相对较高的数值,大约是 16 — 防止打开连接时候速度下降。

使用 skip-name-resolve —移除 DNS 查找。

增加 temp_table_size —防止磁盘写。

增加 max_heap_table_size —防止磁盘写。

监控 key_read_requests 和 key_reads,以便确定 key_buffer 的值 — key 的读需求应该比 key_reads 的值更高,否则使用 key_buffer 就没有效率了。

设置innodb_flush_log_at_trx_commit = 0 可以提高性能,但是保持默认值(1)的话,能保证数据的完整性,也能保证复制不会滞后。

 


原创粉丝点击