开发者社区> 问答> 正文

MYSQL会把查询的结果缓存多久?

最近在做项目的时候突然发现了这样一个问题:
select * from user where uid=100 limit ?,10首先问号等于0,然后问号等于10,20来每一次取得10条数据.这样做是每一次都要执行一次SQL语句,还是MYSQL在问号等于0的时候就已经查找好了所有的结果,第二次就直接从缓存中取数据呢?假设是第二种情况,mysql一般会把查询的结果缓存多久?
求大神解惑,非常感谢!

展开
收起
落地花开啦 2016-02-15 18:30:45 3934 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    mysql缓存是按SQL语句作为键名的。逻辑完全一样的查询,但大小写,空格等有差异,还会被认为是不同的SQL的。
    表数据有写入、更新时,与表相关的缓存就全部失效。
    查询缓存是有个配置大小的选项, 符合条件(如查询中包含变量信息则不缓存如now()函数)的查询每次把结果缓存起来,等待下一次查询使用(语句完全一样)。如果缓存区域大小满了按照LRU原则剔除缓存。

    2019-07-17 18:43:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载

相关镜像