php – 何时使用SQL_NO_CACHE

前端之家收集整理的这篇文章主要介绍了php – 何时使用SQL_NO_CACHE前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在处理我的查询,我一直在阅读有关如何在SELECT查询中使用sql_NO_CACHE的文章.这让我感到困惑,因为每篇文章到底有不同的结论.我读过的一个博客说你应该使用这个,如果你有相同的查询,而且是唯一的.在另一个博客中,我读到,当您必须提取不会更改的信息时,应该使用它.

有人可以解释什么时候使用这个好习惯?我知道以前有人问过,但阅读很多文章没有帮助,特别是当人们在不同情况下使用这种方法时.我做了一些理论上的情况,有人可以告诉我使用sql_NO_CACHE是否有益.谢谢,我对于一个重复的问题道歉.我真的很困惑

说一个网站存储其配置(即站点名称,站点描述,关键字),并在每个页面查询请求来提取每个页面上所需的信息.
>在登录检查期间选择一个userID,查询只在登录检查过程中运行.
>从表a中选择一些数据,以更新表b中的一个字段,如果在表a的select上使用sql_NO_CACHE?

谢谢.

sql_NO_CACHE

只需在SELECT语句的SELECT部分​​和字段列表之后添加sql_NO_CACHE.下面的第一个查询将使用查询缓存,如果它被启用并且查询被缓存:

SELECT * FROM table WHERE search= 'keyword'; //lets take 1ms

下面的第二个查询将不会使用查询缓存:

SELECT sql_NO_CACHE * FROM table WHERE search= 'keyword'; //lets take ~0.2ms at 2nd time

当对查询进行基准测试时,这是特别有用的;如果查询缓存启用,尽管第一个查询可能需要一些时间,第二个和后续的查询几乎是即时的.通过使用sql_NO_CACHE,您可以确保查询缓存不被使用,并可以安全地比较结果时间.
sql_NO_CACHE提示关闭特定查询MysqL内置查询缓存机制.您可以通过对高度动态的查询(例如关键字搜索或仅在夜间运行的报表)使用此提示来帮助MysqL提高查询缓存的效率.
确保查询缓存已打开,否则不需要此命令.

什么sql_CACHE和sql_NO_CACHE?

sql_CACHE和sql_NO_CACHE选项会影响查询结果缓存在查询缓存中.如果sql_CACHE可缓存,并且query_cache_type系统变量的值为2或DEMAND,则sql_CACHE将通知MysqL将结果存储在查询缓存中.使用sql_NO_CACHE,服务器不使用查询缓存.它既不检查查询缓存,查看结果是否已被缓存,也不缓存查询结果. (由于解析器中有限制,空格字符必须在sql_NO_CACHE关键字之前和之后;非空格(如换行符)会导致服务器检查查询缓存以查看结果是否已被缓存.)

如果启用了“CACHE”,并且数据库中的数据被动态更新,即不能依赖db数据高速缓存,则可以使用NO_CACHE,例如:存储用户密码哈希,我们不能依赖于CACHE,因为频繁数据更改的可能性

更新有用的场景

1)强制不要使用缓存来测试查询速度

猜你在找的PHP相关文章