阿哥论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 266|回复: 0

MariaDB的缓存配置

[复制链接]

2018

主题

1

好友

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

优秀会员 助人为乐 辛勤工作 技术精英 多才多艺 优秀班竹 灌水天才 星球管理 宣传大使 灌水之王 财富勋章 版主勋章 动漫勋章 勤奋会员 论坛精英 PS高手 心 8 闪游皮肤 双鱼座 8★8➹ 志愿者 乖

发表于 2015-6-11 09:51:10 |显示全部楼层
MariaDB的缓存配置
虽然服务器的硬件配置越来越高,但是读取磁盘的成本仍然是非常昂贵。如何使用缓存降低读取硬盘的成本是,在提高数据库的性能方面是非常重要的。
在这里简单介绍一下MariaDB的缓存相关参数。
参数说明
have_query_cache能否使用查询缓存
query_cache_limit一个查询所能占用的缓存最大值,超过此设定的话查询结果讲不再被缓存。
query_cache_min_res_unit分配内存块的最小单元,也就是每个查询所占用的最小内存空间大小。
query_cache_size查询缓存所使用的内存大小,默认值为0,大小必须是1024的整数倍。
query_cache_typeOFF:不进行缓存
ON:缓存SELECT SQL_NO_CACHE…以外的查询
DEMAND:仅限缓存SELECT SQL_CACHE…查询
query_cache_wlock_invalidate控制当有写锁定发生在表上的时刻是否先失效该表相关的 Query Cache,如果设置为 1(TRUE),则在写锁定的同时将失效该表相关的所有 Query Cache,如果设置为0(FALSE)则在锁定时刻仍然允许读取该表相关的 Query Cache。
have_query_cache
MariaDB [(none)]> SHOW VARIABLES LIKE 'have_query_cache';+------------------+-------+| Variable_name    | Value |+------------------+-------+| have_query_cache | YES   |+------------------+-------+1 row in set (0.00 sec)query_cache_limit
MariaDB [(none)]> SHOW VARIABLES LIKE 'query_cache_limit';+-------------------+---------+| Variable_name     | Value   |+-------------------+---------+| query_cache_limit | 1048576 |+-------------------+---------+1 row in set (0.00 sec)query_cache_min_res_unit
SHOW VARIABLES LIKE 'query_cache_min_res_unit';+--------------------------+-------+| Variable_name            | Value |+--------------------------+-------+| query_cache_min_res_unit | 4096  |+--------------------------+-------+1 row in set (0.00 sec)query_cache_size
MariaDB [(none)]> SHOW VARIABLES LIKE 'query_cache_size';+------------------+-------+| Variable_name    | Value |+------------------+-------+| query_cache_size | 0     |+------------------+-------+1 row in set (0.00 sec)query_cache_type
MariaDB [(none)]> SHOW VARIABLES LIKE 'query_cache_type';+------------------+-------+| Variable_name    | Value |+------------------+-------+| query_cache_type | ON    |+------------------+-------+1 row in set (0.00 sec)query_cache_wlock_invalidate
MariaDB [(none)]> SHOW VARIABLES LIKE 'query_cache_wlock_invalidate';+------------------------------+-------+| Variable_name                | Value |+------------------------------+-------+| query_cache_wlock_invalidate | OFF   |+------------------------------+-------+1 row in set (0.00 sec)确认查询缓存情况
如何确认一个数据库的查询缓存情况,如命中率如何,配置的内存是否妥当?
MariaDB提供了一系列的SHOW STATUS命令来确认当前的查询缓存状态。
参数说明
Qcache_free_blocks空闲的查询缓存空间(query_cache_min_res_unit数)
Qcache_free_memory空闲的查询缓存总量
Qcache_hits命中查询缓存的次数
Qcache_inserts更新查询缓存的次数,即没有命中缓存的次数
Qcache_lowmem_prunes当查询缓存容量不够,删除一部分查询缓存释放查询缓存空间的次数
Qcache_not_cached没有被缓存的SQL数,包括由于query_cache_type设置的不会被缓存的SQL语句
Qcache_queries_in_cache目前在查询缓存中的SQL数
Qcache_total_blocks查询缓存中的query_cache_min_res_unit数
MariaDB [(none)]> SHOW STATUS LIKE 'Qcache%';+-------------------------+-------+| Variable_name           | Value |+-------------------------+-------+| Qcache_free_blocks      | 0     || Qcache_free_memory      | 0     || Qcache_hits             | 0     || Qcache_inserts          | 0     || Qcache_lowmem_prunes    | 0     || Qcache_not_cached       | 0     || Qcache_queries_in_cache | 0     || Qcache_total_blocks     | 0     |+-------------------------+-------+8 rows in set (0.00 sec)清除查询缓存
MariaDB [(none)]> RESET QUERY CACHE;Query OK, 0 rows affected (0.00 sec)
http://www.zabbix.cc/technic/1880/


该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

回顶部