首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL查询缓存工作

MySQL查询缓存工作
EN

Stack Overflow用户
提问于 2014-05-27 12:06:39
回答 1查看 74关注 0票数 1

我想了解MySQL查询缓存是如何工作的。我查过这个api

这些情景将如何运作?

案例1

代码语言:javascript
复制
select * from my_table where column = 'Myvalue';

案例2

代码语言:javascript
复制
select * from my_table where column = 'test';

案例3

代码语言:javascript
复制
select * from my_table where column = 'Myvalue';

因此,在执行案例3时,我想知道结果是从缓存还是从数据库中获取的。有人能解释一下吗?因为他们在手册中提到了这一点

查询必须完全相同(字节表示字节),才能被视为相同。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-28 12:13:12

因为查询1和3是相同的,只要第一个查询的结果仍然在查询缓存中,并且查询之间没有更新表,那么第三个查询将由缓存提供,而不是命中表。

默认情况下,查询缓存关闭。将query_cache_size设置为以字节为单位的大小,以启用查询缓存。以1024字节的倍数设置。文件上说:

几十兆字节的大小通常是有益的。

还请注意关于查询缓存操作的以下内容

在MySQL 5.1.17之前,准备好的语句不使用查询缓存。从5.1.17开始,准备好的语句在特定条件下使用查询缓存,这取决于准备方法的不同。 如果表发生更改,则使用该表的所有缓存查询都将无效,并将从缓存中删除。

注意,根据查询缓存,以下两个查询是而不是相同的,尽管它们返回相同的结果集:

代码语言:javascript
复制
select * from my_table where column = 'Myvalue';

SELECT * FROM my_table WHERE column = 'Myvalue';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23889023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档