2017-06-22 50 views
0

静态视图在我的建筑,我有一个大单表:的MySQL保持始终处于高速缓存

  • 正常更新,并且可以被认为是“只读”
  • 含有超过2个百万条记录
  • 在几个数据库共享(每个MT客户)

我把这个表中一个单独的数据库和我创建的视图就可以了,在每个SI数据库。

现在,这种配置正在减慢系统。 我的想法是在高速缓存中,以“冻结”这一观点,但我找不到这样做

上午我在正确的方式方法是什么?你有关于如何最大限度地利用这种情况的建议吗?

感谢

回答

0

缓存在MySQL不会帮助,因为MySQL的query cache认为,可以在查询中使用的查询,而不是单个表的结果。

根据您的表的大小和服务器的可用物理内存,您可以添加一个memory table,它与您的大配置表具有完全相同的结构。

每当MySQL服务器重新启动或基本配置表发生变化时,您都必须运行一个填充内存表的脚本(如有更改,只需更新它)。在您的查询中,您可以直接引用内存表,而不是通过视图。

但是,在内存表上有很多限制,所以我不确定这是否适合您的情况。

通常,表分区,创建适当的索引以及调整MySQL配置可以显着提高数据库的性能。

必须使用explain声明逐个评估缓慢的查询,而设置必须由知识丰富的MySQL DBA评估。