gpt4 book ai didi

MySQL查询缓存工作

转载 作者:行者123 更新时间:2023-11-29 00:13:19 24 4
gpt4 key购买 nike

我想了解 MySQL 查询缓存的工作原理。我检查了this api

这些场景将如何运作?

案例一

select * from my_table where column = 'Myvalue';

案例二

select * from my_table where column = 'test';

案例三

select * from my_table where column = 'Myvalue';

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

Queries must be exactly the same (byte for byte) to be seen as identical.

最佳答案

由于查询 1 和 3 相同,只要第一个查询的结果仍在 query cache 中并且在查询之间没有对表进行更新,第三个查询将由缓存提供而不是访问表。

查询缓存默认关闭。设置query_cache_size以字节为单位的大小以启用查询缓存。设置为 1024 字节的倍数。文档说:

Sizes in tens of megabytes are usually beneficial.

另请注意以下有关 query cache operation 的信息:

Before MySQL 5.1.17, prepared statements do not use the query cache. Beginning with 5.1.17, prepared statements use the query cache under certain conditions, which differ depending on the preparation method.

If a table changes, all cached queries that use the table become invalid and are removed from the cache.

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

select * from my_table where column = 'Myvalue';

SELECT * FROM my_table WHERE column = 'Myvalue';

关于MySQL查询缓存工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23889023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com