加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – SQL查询缓存

发布时间:2020-12-11 23:45:18 所属栏目:MySql教程 来源:网络整理
导读:我知道SQL查询将使用查询缓存来接收数据,而不是重新处理所有数据.这是我想问的问题, 我使用数据库服务器,我是开发人员之一,我需要对我处理的查询进行性能测试 如果我清除查询缓存 示例使用FLUSH QUERY CACHE;或重置QUERY CACHE;, 它会影响其他开发人员,还是

我知道SQL查询将使用查询缓存来接收数据,而不是重新处理所有数据.这是我想问的问题,

我使用数据库服务器,我是开发人员之一,我需要对我处理的查询进行性能测试

如果我清除查询缓存
示例使用FLUSH QUERY CACHE;或重置QUERY CACHE;,

它会影响其他开发人员,还是只清除我的本地查询缓存?

如果它会影响其他人,有没有办法在本地清除或允许我的查询不会使用查询缓存进行测试

最佳答案 两个澄清开头:

> MySQL查询缓存是服务器端功能,没有“本地缓存”这样的东西.你可能会对FLUSH命令中的LOCAL关键字感到困惑.正如docs解释的那样,它只是NO_WRITE_TO_BINLOG的别名(因此它与复制有关,“本地”意味着“此服务器”).
>如果您启用了该功能,MySQL将仅返回缓存数据,并将其设置为默认值或选择使用SQL_CACHE提示.根据我的经验,大多数服务器默认没有它.

我们现在回答你的问题.在The MySQL Query Cache,我们可以阅读:

The query cache is shared among sessions,so a result set generated by
one client can be sent in response to the same query issued by another
client.

这是有道理的:无法重用存储数据的缓存不那么有用.

我不知道你想要测试什么.您的数据应始终保持新鲜:

The query cache does not return stale data. When tables are modified,
any relevant entries in the query cache are flushed.

但是,您可能想知道查询运行多长时间.您可以随时选择退出the SQL_NO_CACHE keyword:

The server does not use the query cache. It neither checks the query
cache to see whether the result is already cached,nor does it cache
the query result.

只要考虑到第二次运行的查询即使没有缓存也可能运行得更快,因为部分数据段可能已经加载到RAM中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读