*******************************************************************************************
query_cache_size
query_cache_type
只要 query_cache_type 没有关闭,sql 查询总是会使用查询缓存,如果缓存没有命中则开始查询的执行计划到表中查询数据。
1、想要彻底关闭 query cache,务必在一开始就设置 query_cache_type = 0,即便是启动后将 query_cache_type 从 1 改成 0,也不行;
2、即便 query_cache_size = 0,但 query_cache_type 非 0 的话,在实际环境中,可能会频繁发生 Waiting for query cache lock;
3、一开始就设置 query_cache_type = 0 的话,没有办法在运行 过程中再次动态启用,反过来则可以。也就是说,一开始是启用 query c
ache 的, 在运行过程中将其关闭,但事实上仍然会发生 Waiting for query cache lock,并没有真正的关闭;
*******************************************************************************************
Mysql Innodb 引擎优化 参数(innodb_buer_pool_size)
作用:
这个参数主要作用是缓存 innodb 表的索引,数据,插入数据时的缓冲
默认值:128M
专用 mysql 服务器设置的大小: 操作系统内存的 70%-80%最佳。(建议 50%)
设置方法:
my.cnf 文件
innodb_buffer_pool_size = 6G
此外,这个参数是非动态的,要修改这个值,需要重启 mysqld 服务。
所以设置的时候要非常谨慎。
并不是设置的越大越好。设置的过大,会导致 system 的 swap 空间被占用,导致操作系统变慢,从而减低 sql 查询的效率。
*******************************************************************************************
innodb_additional_mem_pool:
作用:用来存放 Innodb 的内部目录
这个值不用分配太大,系统可以自动调。不用设置太高。通常比较大数据设置 16 M够用了,如果表比较多,可以适当的增大。如果这个
值自动增加,会在 error log 有中显示的。
分配原则:
用 show innodb statusG;去查看运行中的DB是什么状态(参考 BUFFER POOL AND MEMORY 段中),然后可以调整到适当的值。
———————-
BUFFER POOL AND MEMORY
———————-
Total memory allocated 4668764894; in additional pool allocated 16777216
参考:in additional pool allocated 16777216
根据你的参数情况,可以适当的调整。
设置方法:
innodb_additional_mem_pool=16M
*******************************************************************************************
innodb_log_3le_size
作用:指定日志的大小
分配原则:几个日志成员大小加起来差不多和你的 innodb_buer_pool_size 相等。上限为每个日值上限大小为 4G.一般控制在几个L
OG文件相加大小在2G以内为佳。具体情况还需要看你的事务大小,数据大小为依据。
说明:这个值分配的大小和数据库的写入速度,事务大小,异常重启后的恢复有很大的关系。
设置方法:
innodb_log_file_size=256M
*******************************************************************************************
innodb_log_files_in_group
作用:指定你有几个日志组。
分配原则: 一般我们可以用2-3个日志组。默认为两个。
设置方法:
评论0