MySQL优化方向之查询缓存的介绍,提升我们的数据库性能
《MySQL优化方向之查询缓存的介绍,提升我们的数据库性能》要点:
查询缓存是什么 将某个select语句和相应的查询结果缓存起来,如果以后有相同的select语句的话,就直接从查询缓存中读取结果,不必要再执行表查询. 这里指的是同一个select语句. 仅仅对select语句有效. 因为不必要执行表查询,所以更快. 它不会返回过时的数据,如果数据有改变,整个查询缓存将被冲洗. 仅仅适用于以读为主的应用,频繁写应用不得当. 反省MySQL数据库是否支持查询缓存 在命令行登录MySQL服务器之后,执行SHOW VARIABLES LIKE 'have_query_cache'语句就能够看到你的MySQL服务器是否开启了查询缓存,参考下图,如果为yes表现支持查询缓存,否则表现不支持查询缓存,该值有0,1,2三种. 0表现不支持. 1表现能够缓存的都缓存,除非你指定SQL_NO_CACHE的除外. 2表现仅仅明确指定了SQL_CACHE的才会缓存. 开启SQL查询缓存 SELECT SQL_CACHE 字段名1,字段名2 FROM 表名 WHERE SELECT SQL_NO_CACHE 字段名1,字段名2 FROM 表名 WHERE 前者是开启,后者是不开启查询缓存 不缓存的SQL语句特征 如果我们的SELECT语句里面包括有一些动态实时的函数,那么这个select语句将无法被查询缓存缓存起来. now函数 表现现在的时间,是一个动态的值,查询缓存肯定无法使用,还有rand函数也是一样,是一个随机返回值,还有found_rows函数,返回的是行数,会变,还有很多同类的函数,查询缓存都是不生效的. 为什么缓存不了 除了前面说的SQL_NO_CACHE外,还有两个配置参数控制着查询缓存,一个是query_cache_limit和query_cache_size,前者控制当查询成果大于多少的时候将不会被缓存起来,而后者控制查询缓存最大的尺寸. 查询缓存什么时候失效 如果我们的相应成果有改变,那么查询缓存将失效,或者我们人为手动执行了下面这个SQL语句,那么所有的查询缓存将失效: FLUSH QUERY CACHE 相应的视频请点击:MySQL性能提升计划之查询缓存介绍 《MySQL优化方向之查询缓存的介绍,提升我们的数据库性能》是否对您有启发,欢迎查看更多与《MySQL优化方向之查询缓存的介绍,提升我们的数据库性能》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |