使用内存数据库或搜索引擎进行只读,以加快网站速度

使用内存数据库或搜索引擎进行只读,以加快网站速度

我有一个应用程序需要对每个页面进行大量查询,这会使其速度变慢。

我曾尝试使用缓存系统(Redis),但实现起来有点复杂,而且需要花费时间,因为每个查询都依赖于很多依赖项。

我正在考虑在内存中再创建一个数据库克隆,该克隆应该是只读的,但每次数据库更新或插入时都应该更新内存行?您认为这是否有效且实用?如果是,目前是否有任何方法可以实现这一点,因为我正在使用 postgres。

我的第二个想法是对所有查询使用类似 Sphinx 搜索引擎的东西,在这种情况下,我需要使用实时索引。

这有效吗或者有更好的解决方案。

注意:数据库大小约为 50GB,我可以获得所有内存。

问候,,,

答案1

一般来说这不是一个聪明的主意。你看,数据库是由聪明人编写的,并使用尽可能多的内存进行缓存。如果你太频繁地访问磁盘,那么你就有内存问题——在同样有限的内存中保存另一份副本不会让事情变得更好。

应该做的是进行基线分析。瓶颈是什么?修复它。增加内存、SSD 是这里的典型步骤。哪些查询最昂贵?经验告诉我,你可能有一些造成很大破坏的锤子,问题不是“查询太多”,而是“索引到底是什么”。

但是内存数据库通常不会产生影响,因为任何有价值的数据库都已经将尽可能多的内存用作缓存。这是很自然的,除非某些管理员设置了极低的限制来“节省内存”,然后出现性能问题。

那么您真的应该从缓存开始。

相关内容