查询MySQL InnoDB以查找记录是否在其缓冲池中

查询MySQL InnoDB以查找记录是否在其缓冲池中,mysql,caching,buffer,innodb,Mysql,Caching,Buffer,Innodb,对于我们来说,为我们的网站php脚本查询大型数据库获得高响应时间是非常重要的。它本质上是为访问页面的用户获取用户信息。数据库中可能有数百万用户 如果记录不在MySQL数据库的InnoDB缓冲池中,我们不想麻烦使用用户数据,而只使用上面缓存中的信息 有没有办法直接询问Mysql/InnoDB记录是否在缓存中?海森堡说这样做效率很低。(好吧,也许这是一个糟糕的解释。) 如果同时没有数百万用户,以太网电缆就会融化 你想做什么?说“您的数据不在缓存中,因此您无法访问您的帐户”?我对此表示怀疑 一百万用户

对于我们来说,为我们的网站php脚本查询大型数据库获得高响应时间是非常重要的。它本质上是为访问页面的用户获取用户信息。数据库中可能有数百万用户

如果记录不在MySQL数据库的InnoDB缓冲池中,我们不想麻烦使用用户数据,而只使用上面缓存中的信息


有没有办法直接询问Mysql/InnoDB记录是否在缓存中?

海森堡说这样做效率很低。(好吧,也许这是一个糟糕的解释。)

如果同时没有数百万用户,以太网电缆就会融化

你想做什么?说“您的数据不在缓存中,因此您无法访问您的帐户”?我对此表示怀疑

一百万用户的基本行可能需要0.1GB。你的机器有多小

好的,我会认真的

不,无法询问行是否缓存在缓冲池中

我认为没有必要问。想想“缓存”(在LRU机制中)意味着什么。在记录被从缓存中取出之前返回的用户将在内存中找到它;其他用户将额外延迟几毫秒以获取数据。这假设您没有空间一直缓存整个0.1GB(一旦缓冲池预热)

打个比方,想想新闻文章。每个人都想要“今日新闻”,所以这几行就留在缓存中。偶尔索取上个月的新闻需要更长的时间

更大的图景。。。假设整个数据集对于缓冲池来说太大。然后优化是最小化磁盘命中次数。相反,如果您的表扫描效率低下(由于缺少适当的索引),则会“太快”从缓存中跳出

如果您想进一步讨论php网页性能,请提供一些关于数据集大小、RAM大小、查询类型等的线索