gpt4 book ai didi

mysql - 如何手动建立mysql缓存

转载 作者:行者123 更新时间:2023-11-29 04:30:37 25 4
gpt4 key购买 nike

我有一个超过 150,000 行的表格,其中大部分每天都会更新。我打开了 mysql 缓存,因此页面加载速度更快,但每次更新数据库时页面加载速度再次变慢,我认为这是缓存再次构建自身。

所以目前我已经求助于在服务器上执行 wget -m --delete-after http://localhost/ 但这需要大约 4 个小时才能完成并移动大约 13演出。

有更好的方法吗?

最佳答案

MySQL 缓存的工作方式不同,具体取决于您使用的是 MyISAM 存储引擎还是 InnoDB 存储引擎。

MyISAM 只缓存索引,不缓存数据。您可以使用 LOAD INDEX INTO CACHE将 MyISAM 索引预加载到键缓冲区缓存中。但是,如果您使用 InnoDB,则没有等效语句。

InnoDB 缓存数据页和索引页。没有专门的命令来预热缓存缓冲区,但您可以执行一些执行全表扫描和全索引扫描的 SQL 语句,将它们加载到缓冲区中。您应该能够使用服务器上的脚本来执行此操作,而无需求助于 wget!

我同意@code_burgar 的回答:150k 行已经足够小,在缓存预热期间您不会注意到太多性能损失。

如果您正在谈论预热 Query Cache ,这是一个不同的问题。您必须使用特定的 SQL 查询来预热查询缓存,因为该缓存会逐字保存与这些 SQL 查询关联的结果集。您的 wget 解决方案效率低下,可能会重复很多工作。您应该能够通过在服务器上运行一个脚本来启动查询缓存,该脚本执行您希望缓存的每个查询一次

但您可能需要进行代码审查以确定这些查询是什么,并在代码更改时定期更新缓存预加载脚本。

关于mysql - 如何手动建立mysql缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3010144/

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