我的网站阅读量很大。比写流量大得多。
为了提高我的网站的性能,我考虑使用主/从数据库配置。octupus gem
似乎提供了我想要的,但由于我的应用程序很大,我无法通过数百万的源代码行来更改查询分布(将读查询发送到从属服务器,将查询写入主服务器)。MySQL Proxy
似乎是解决这个问题的一个很好的方法,但是因为它是alpha版本,所以我不想使用它。
所以我的问题是,在主/从服务器之间分割读/写查询的最佳方法是什么?
在rails中不使用任何gems就可以分割读/写查询吗?
最佳答案
使用octopus gem,您不必更改太多代码就可以将写查询转到主db服务器,将读查询转到从db服务器。
这是一个简单的配置文件,如here所述。
我以前试过,效果很好。对我来说,唯一的问题是当从服务器关闭时,它不会像我所要求的那样将查询“重定向”到主数据库服务器。
但是,如果要配置每个单独的查询目的地,则需要做一些工作。
我建议您开始映射更频繁的查询和那些需要更长时间才能响应的查询。了解这些查询,您可以单独优化它们。这可能已经解决了部分问题。
如果在那之后仍然需要主从复制,那么使用octopus gem只改变那些少数复杂查询的行为。