我们的情况有点不典型,我猜...
我们有一个经常从多个应用程序调用的存储过程。由于这是一个繁重的过程,要连接多个大表,我们决定对其结果进行缓存。因此,现在该过程首先检查是否有缓存结果 - 如果有,则返回它,如果没有,则计算它(大 SELECT,许多 JOIN)并放入缓存表以供进一步使用。缓存行在源表的触发器中被标记为“待刷新”(因此,如果源数据发生变化,我们会使与该数据连接的缓存失效)。
引入缓存后,服务器机器上的 CPU 使用率明显下降,但数据库增长迅速。缓存表非常大,占数据库空间的 1/3。有一个想法将它们放入单独的数据库中(主要是为了避免备份它们)。但是我担心性能,使用来自其他数据库的数据不会显着降低查询速度吗?