MySQL数据库的查询缓冲机制

数据库 MySQL
使用查询缓冲机制,可以极大地提高MySQL数据库查询的效率,节省查询所用的时间。那么查询缓冲机制是怎样设置的呢?本文我们就来介绍这部分内容,希望能够对您有所帮助。

MySQL数据库提供了查询缓冲机制。使用该查询缓冲机制,MySQL将SELECT语句和查询结果存放在缓冲区中,以后对于同样的SELECT语句(区分大小写),将直接从缓冲区中读取结果。以节省查询时间,提高了SQL查询的效率。本文我们主要就介绍一下MySQL数据库的查询缓冲机制,接下来就让我们来一起了解一下这部分内容。

通过调节以下几个参数可以知道query_cache_size设置得是否合理:

Qcache inserts

Qcache hits

Qcache lowmem prunes

Qcache free blocks

Qcache total blocks

Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,同时Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小Qcache_hits的值不大,则表明你的查询重复率很低,这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲。

Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多query_cache_type指定是否使用查询缓冲。

如果设置为:

query_cache_size = 32M

query_cache_type= 1

得到如下状态值:

Qcache queries in cache 12737 //表明目前缓存的条数。

Qcache inserts 20649006

Qcache hits 79060095 //看来重复查询率还挺高的。

Qcache lowmem prunes 617913 //有这么多次出现缓存过低的情况。

Qcache not cached 189896   

Qcache free memory 18573912 //目前剩余缓存空间。

Qcache free blocks 5328 //这个数字似乎有点大,碎片不少

Qcache total blocks 30953

如果内存允许,还可以将query_cache_size再设大一些。

关于MySQL数据库查询缓存机制的介绍就到这里了,如果您想了解更多MySQL数据库的知识,可以去这里看一看:http://database.51cto.com/mysql/,相信一定能够给您带来收获的!

【编辑推荐】

  1. Oracle 10g数据库查找数据的方法总结
  2. 在SQL Server数据库中插入图像的实现方法
  3. SQL Server数据库对连接字符串的安全性处理
  4. Oracle数据库启动参数文件及相关SQL语句简介
  5. SQL Server 2008数据库清空数据库日志的代码示例
责任编辑:赵鹏 来源: 火魔网
相关推荐

2011-08-30 12:51:19

MySQL线程缓冲池

2010-06-07 13:30:15

2013-01-04 10:00:12

MySQL数据库数据库查询优化

2011-03-30 13:44:45

MySQL数据库锁机制

2019-07-11 08:45:00

MySQL数据库缓存

2022-06-20 05:40:25

数据库MySQL查询

2011-04-02 09:33:13

MySQL数据库查询效率

2011-04-02 09:23:19

MySQL数据库查询效率

2011-04-02 09:33:08

MySQL数据库查询效率

2011-08-05 15:51:44

MySQL数据库缓存

2010-06-10 10:15:50

MySQL数据库查询

2010-05-13 10:47:44

MySQL数据库查询

2023-10-09 18:13:14

MySQL数据库查询

2009-07-01 10:01:33

JSP分页查询MySQL数据库

2011-05-19 10:29:40

数据库查询

2011-04-18 09:03:36

数据库查询

2011-03-08 08:49:55

MySQL优化单机

2018-02-08 18:16:39

数据库MySQL锁定机制

2019-09-11 11:38:30

MySQLInnoDB数据库

2018-10-16 16:00:39

数据库锁舞MySQL
点赞
收藏

51CTO技术栈公众号