MySQL查询缓存

查询缓存的使用

执行查询语句的时候,会先查询缓存。不过,MySQL 8.0 版本后移除,由于这个功能不太实用sql

  my.cnf加入如下配置,重启MySQL开启查询缓存数据库

query_cache_type=1 query_cache_size=600000

  MySQL执行如下命令也能够开启查询缓存缓存

set global  query_cache_type=1; set global  query_cache_size=600000;
  如上,开启查询缓存后在一样的查询条件以及数据状况下,会直接在缓存中返回结果。这里的查询条件包括查询自己、当前要查询的数据库、客户端协议版本号等一些可能影响结果的信息。所以任何两个查询在任何字符上的不一样都会致使缓存不命中。此外,若是查询中包含任何用户自定义函数、存储函数、用户变量、临时表、MySQL库中的系统表,其查询结果也不会被缓存。

缓存创建以后,MySQL的查询缓存系统会跟踪查询中涉及的每张表,若是这些表(数据或结构)发生变化,那么和这张表相关的全部缓存数据都将失效。函数

  缓存虽然可以提高数据库的查询性能,可是缓存同时也带来了额外的开销,每次查询后都要作一次缓存操做,失效后还要销毁。 所以,开启缓存查询要谨慎,尤为对于写密集的应用来讲更是如此。若是开启,要注意合理控制缓存空间大小,通常来讲其大小设置为几十MB比较合适。此外,还能够经过sql_cache和sql_no_cache来控制某个查询语句是否须要缓存:性能

select sql_no_cache count(*) from usr;
相关文章
相关标签/搜索