私服服务器租用-成都服务器托管-如何在mysql进行查询缓存及失败的解决方法

这篇文章主要介绍了如何在mysql进行查询缓存及失利的解决办法,文中经过示例代码介绍的十分详细,对咱们的学习或者工作具有一定的参考学习价值,需求的朋友们下面跟着小编来一同学习学习吧

都知道函数在运用前需求弄清楚参数的特点,这样才能对函数的运用有较好的了解。有些小伙伴学习了查询缓存后,直接进行了下一步的实战操作。这儿小编想提示咱们,开端操作之前一定要先设置参数,不然就会出现问题。下面咱们来完好的讲一下mysql查询缓存的步骤以及缓存失效的分析。

1.装备参数

(1) have_query_cache表明是否支撑查询缓存,YES表明支撑

(2) query_cache_type表明缓存类型,OFF表明封闭查询缓存,ON表明敞开查询缓存,DEMAND表明用户自定义查询缓存

(3) query_cache_limit表明支撑的最大单条查询sql数据量

(4) query_cache_min_res_unit表明查询缓存最小单位

(5) query_cache_size表明查询缓存空间大小

(6) query_cache_wlock_invalidate表明查询缓存是否支撑写锁,OFF表明不支撑,即读取数据不考虑写锁,ON表明支撑,即读取数据会被写锁堵塞

MySQL的查询缓存默许是封闭的,需求手动装备参数query cache type,来敞开查询缓存。query cache type该参数的可取值有三个 :

1)OFF或0 :查询缓存功用封闭;

2)ON或1 :查询缓存功用打开,SELECT的成果契合缓存条件即会缓存,否则,不予缓存,显示指定SQL_NO_CACHE,不予缓存

3)DEMAND或2 :查询缓存功用按需进行,显示指定SQL_CACHE的SELECT语句才会缓存;其他均不予缓存。

在/usr/my.cnf装备中,增加以下装备 :

2.敞开mysql的查询缓存

query_cache_type=1

私服服务器租用装备结束之后,重启服务即可生效;

然后就能够在命令行履行SQL语句进行验证,履行一条比较耗时的SQL语句,然后再多履行几次,检查后边几次的履行时间;获取经过检查查询缓存的缓存命中数,来断定是否走查询缓存。

查询缓存运用

(1) 只有字符串相等查询sql才运用相同缓存,即select name from city与SELECT name FROM city不运用同一个缓存。

(2) 在query_cache_type为ON的情况下,默许一切查询都运用缓存,咱们能够运用sql_no_cache显示指定某个查询不运用缓存

query_cache_type=1

(3) 在query_cache_type为DEMAND的情况下,需求运用sql_cache指定某个查询运用缓存

select sql_cache name from city;

3.缓存失效:

成都服务器托管在表的结构或数据发生改变时,查询缓存中的数据不再有用。如INSERT、UPDATE、 DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE会导致缓存数据失效。所以查询缓存适合有很多相同查询的应用,不适合有很多数据更新的应用。

一旦表数据进行任何一行的修改,基于该表相关cache立即全部失效。

以上就是咱们在mysql进行查询缓存需求进行的步骤,在参数的设置方面再次提示咱们。假如缓存失效小伙伴们也不要着急,对应小编的分析找找办法。

共有 0 条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注