适度使用Query Cache
首先,我们需要根据Query Cache 失效机制来判断哪些表适合使用Query 哪些表不适合。由于QueryCache 的失效主要是因为Query 所依赖的Table 的数据发生了变化,造成Query 的Result Set 可能已经有所改变而造成相关的Query Cache 全部失效,那么我们就应该避免在查询变化频繁的Table 的Query 上使用,而应该在那些查询变化频率较小的Table 的Query 上面使用。MySQL 中针对Query Cache 有两个专用的SQL Hint(提示):SQL_NO_CACHE 和SQL_CACHE,分别代表强制不使用Query Cache 和强制使用Query Cache。我们完全可以利用这两个SQL Hint,让MySQL 知道我们希望哪些SQL 使用Query Cache 而哪些SQL 就不要使用了。这样不仅可以让变化频繁Table 的Query 浪费Query Cache 的内存,同时还可以减少Query Cache 的检测量。
其次,对于那些变化非常小,大部分时候都是静态的数据,我们可以添加SQL_CACHE 的SQL Hint,强制MySQL 使用Query Cache,从而提高该表的查询性能。
最后,有些SQL 的Result Set 很大,如果使用Query Cache 很容易造成Cache 内存的不足,或者将之前一些老的Cache 冲刷出去。对于这一类Query 我们有两种方法可以解决,一是使用SQL_NO_CACHE 参数来强制他不使用Query Cache 而每次都直接从实际数据中去查找, 另一种方法是通过设定“query_cache_limit”参数值来控制Query Cache 中所Cache 的最大Result Set ,系统默认为1M(1048576)。当某个Query 的Result Set 大于“query_cache_limit”所设定的值的时候,QueryCache 是不会Cache 这个Query 的。
相关推荐
Laravel开发-laravel-query-cache Laravel查询缓存
mycat连接数据库8.0以上用1.6.4有bug,经常无法插入;使用1.6.5以上版本 程序连接报错query_cache_size。 本资源基于1.6.7基础之上进行优化
基于源码修改JDBC8驱动连接Mycat1.6报错 Unknown system variable 'query_cache_size' ,配置好mycat相应配置直接bin目录启动即可
源码 博文链接:https://raymondhekk.iteye.com/blog/250427
MSQL问题集合,线上环境到底要不要开启query cache
原理 QueryCache(下面简称QC)是根据SQL语句来cache的。一个SQL查询如果以select开头,那么MySQL服务器将尝试对其使用QC。每个Cache都是以SQL文本作为key来存的。在应用QC之前,SQL文本不会被作任何处理。也就是说,...
会发现其变量have_query_cache的值是yes,MYSQL初学者很容易以为这个参数为YES就代表开启了查询缓存,实际上是不对的,该参数表示当前版本的MYSQL是否支持Query Cache,实际上是否开启查询缓存是看另外一个参数的值:...
如果空格是加在query之前,比如是在query的起始处加了空格,这样是丝毫不影响query cache的结果的,mysql认为这是一条query, 而如果空格是在query中,那会影响query cache的结果,mysql会认为是不同的query
Querycache (TM) 是一种智能分布式缓存,用于存储来自异构存储系统的 SQL 结果。 用户组: : user 路线图: ://docs.google....
##如何使用###步骤1:通过Composer安装composer require kyrenator/query-cache ###步骤2:在模型中使用QueryCache <?php namespace App ;use Kyrenator \ QueryCache \ QueryCache ;use Illuminate \ Database ...
Laravel开发-laravel-query-cache .zip
如何使用sap query制作查询报表。query是sap内置的工具,可以满足大部分用户报表的需求。
Laravel开发-query-cache-builder 此包正在缓存每个请求的每个查询,以确保不再重复查询。
Laravel开发-laravel_duplicate_query_cache 这个小库包含在一个请求期间缓存重复查询所需的所有代码。
'apostrophe-query-cache' : { } 内存管理 由于没有主动管理缓存使用了多少内存,它每 60 秒自动失效一次。 在大多数情况下,这足以保持合理的内存使用。 这也是一个非常粗糙的解决方案; 某种最近最少使用的策略会...
【Anki插件】Word Query插件使用说明.pdf
SAP中使用QUERY进行汇总查询[收集].pdf