Rails Caching DB Queries and Best Practices

后端 未结 4 1269
小蘑菇
小蘑菇 2021-01-31 04:23

The DB load on my site is getting really high so it is time for me to cache common queries that are being called 1000s of times an hour where the results are not changing. So f

4条回答
  •  生来不讨喜
    2021-01-31 04:43

    If you need to speed up sql queries on data that doesnt change much over time then you can use materialized views.

    A matview stores the results of a query into a table-like structure of its own, from which the data can be queried. It is not possible to add or delete rows, but the rest of the time it behaves just like an actual table. Queries are faster, and the matview itself can be indexed.

    At the time of this writing, matviews are natively available in Oracle DB, PostgreSQL, Sybase, IBM DB2, and Microsoft SQL Server. MySQL doesn’t provide native support for matviews, unfortunately, but there are open source alternatives to it.

    Here is some good articles on how to use matviews in Rails

    sitepoint.com/speed-up-with-materialized-views-on-postgresql-and-rails

    hashrocket.com/materialized-view-strategies-using-postgresql

提交回复
热议问题