我有一个应用程序,需要对每一个页面做很多的查询,使其变慢。
我试图使用caching系统(Redis),但实现有点复杂,需要时间,因为每个查询都依赖于很多的依赖关系。
我想在内存中应该只读的数据库的另一个克隆,但每次发生数据库更新或插入应更新内存行? 你认为这将是有效和实用的,如果是这样的话,目前有什么办法来实现这一点,因为我使用的是postgres。
我的第二个想法是使用像狮身人面像的search引擎的所有查询,在这种情况下,我将需要使用实时索引。
这是工作还是有更好的解决scheme。
注意:数据库大小约为50GB,我可以获得所有内存。
问候,,,
一般来说这不是一个聪明的主意。 看,数据库是由聪明的人写的,尽可能多地使用内存来caching。 如果你经常打光盘,那么你有一个内存问题 – 保持在同一个有限的内存另一个副本不会让事情变得更好。
什么人应该做基线分析。 什么是瓶颈? 修理它。 更多的内存,固态硬盘是这里典型的步骤 什么是最昂贵的查询? 经验告诉我,你可能在那里有很多损坏的锤子,问题不是“太多的疑问”,而是“什么是索引”。
但是一个内存数据库通常不应该有所作为,因为一个数值的数据库已经使用尽可能多的内存。 当然,除非有些pipe理员为了“节省内存”而存在一个可笑的低限,然后出现性能问题。
然后你真的应该开始caching。