生产环境MySQL Server核心参数的配置(三)
nsert操作上稍有优势。其它都没独立表空间表现好
⒀ key_buffer_size
● 推荐理由
对于我们只使用InnoDB引擎的数据库系统而言,此参数值也不能设置过于偏小
因为临时表可能会使用到此键缓存区空间,索引缓存区推荐:64M
⒁ query_cache_type和query_cache_size
● 推荐理由
query_cache_type=N
N=0 —- 禁用查询缓存的功能
N=1 —- 启用产讯缓存的功能,缓存所有符合要求的查询结果集,除SELECT SQL_NO_CACHE..,
以及不符合查询缓存设置的结果集外
N=2 —- 仅仅缓存SELECT SQL_CACHE …子句的查询结果集,除不符合查询缓存设置的结果集外
query_cache_size
① 查询缓存区对DDL和DML语句的性能影响;
② 查询缓存区的内部维护成本;
③ 查询缓存区的命中率及内存使用率等综合考虑
④ 业务类型
query_cache_size的工作原理:
一个SELECT查询在DB中工作后,DB会把该语句缓存下来,当同样的一个SQL再次来到DB里调用时,
DB在该表没发生变化的情况下把结果从缓存中返回给Client
这里有一个关建点,就是DB在利用Query_cache工作时,要求该语句涉及的表在这段时间内没有发生变更
那如果该表在发生变更时,Query_cache里的数据又怎么处理呢?
首先要把Query_cache和该表相关的语句全部置为失效,然后在写入更新
那么如果Query_cache非常大,该表的查询结构又比较多,查询语句失效也慢,一个更新或是Insert就会很慢
所以在数据库写入量或是更新量也比较大的系统,该参数不适合分配过大。而且在高并发,写入量大的系统,建系把该功能禁掉