php – 何时使用SQL_NO_CACHE
我正在处理我的查询,我一直在阅读有关如何在SELECT查询中使用SQL_NO_CACHE的文章.这让我感到困惑,因为每篇文章到底有不同的结论.我读过的一个博客说你应该使用这个,如果你有相同的查询,而且是唯一的.在另一个博客中,我读到,当您必须提取不会更改的信息时,应该使用它.
有人可以解释什么时候使用这个好习惯?我知道以前有人问过,但阅读很多文章没有帮助,特别是当人们在不同情况下使用这种方法时.我做了一些理论上的情况,有人可以告诉我使用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_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)强制不要使用缓存来测试查询速度 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |