mysql缓存设置(查询缓存)

一、概念

1、从 MySQL4开始,出现了QueryCache查询缓存,如果使用了QueryCache,当查询接收到一个和之前同样的查询,服务器将会从查询缓存中检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间,非常有用。

2、缓存存在一个hash表中,通过查询SQL,查询数据库,客户端协议等作为key.在判断是否命中前,MySQL不会解析SQL,而是直接使用SQL去查询缓存,SQL任何字符上的不同,如空格,注释,都会导致缓存不命中。如果查询中有不确定数据,例如CURRENT_DATE()和NOW()函数,那么查询完毕后则不会被缓存.所以,包含不确定数据的查询是肯定不会找到可用缓存的

3、打开查询缓存,是通过几个步骤来设置的,例如:虽然你设置Mysql允许查询缓存,但是如果你设置的查询缓存大小为了0,这和没有允许没什么区别。所以必须是几个步骤的设置才能真正打开查询缓存这个功能。

4、只要数据库中数据变化,缓存自动删除

二、工作流程

  1. 服务器接收SQL,以SQL和一些其他条件为key查找缓存表(额外性能消耗)

  2. 如果找到了缓存,则直接返回缓存(性能提升)

  3. 如果没有找到缓存,则执行SQL查询,包括原来的SQL解析,优化等.

  4. 执行完SQL查询结果以后,将SQL查询结果存入缓存表(额外性能消耗)

三、设置缓存

1、查看缓存是否开启,OFF关闭,ON开启

select @@query_cache_type

你可能感兴趣的:(mysql,mysql,java,数据库)