fBetter praktyką ogromnej wielkości stołu na Ruby on Rails 4/ActiveRecordLepsze praktyki dla ogromnej wielkości stołu na Ruby on Rails 4/ActiveRecord
Jak mogę podzielić się big table
w postgreSQL
z Active Record
on Rails 4
Preferuję PostgreSQL lub inny RDBMS, ponieważ próbowałem go w MongoDB. Jest bardzo powolny.
Czy Rails 4
obsługuje dobre rozwiązanie dla jednego całego dużego stołu?
(mój przypadek: więcej niż
50 billions
zapisów, rozmiar jest o20TB
)
opis danych
Istnieje User
tabela zawierająca name, personal_data, year
pól.
Dane można podzielić przez year
, a dane zostaną podzielone równomiernie.
Pomysły
myślę, że jest not practical
tworzenia kilku modelu jak User_1950, User_2001,..., User_2015
Chcę partition
całego danych przez year
Istnieją dwa zbliżył mogę myśleć
- podzielić na różne
physical table
w tej samej bazie danych. (sharding?) - podzielone na różne
physical database
na różnych bazach danych. (Może to działa dobrze z Rails)
Chcę rozwiązanie może zgodną z Active Record
będzie działać jak
User.find(name: xxx, year: 1988)
User.find(name: xxx, year: 2012)
Tak, że nie dbam o tym, jak uzyskać dostęp do partycjonowanych wielu tabel.
O ile wiem
znalazłem gem partitioned
ale która nie wspiera Rails 4
Użyj [dziedzictwo] (http://www.postgresql.org/docs/current/static/tutorial-inheritance.html) partycjonowanie tabel: http : //www.depesz.com/2015/06/07/partitioning-what-why-how/ –
@a_horse_with_no_name Hi, ale czy może również wspierać aktywny rekord na szynach 4. nie wydaje się na to szczęście? – newBike
Wygląda na to, że 'partycjonowany' klej, który oglądałeś, może obsługiwać Rails 4 teraz https://github.com/fiksu/partitioned/issues/44 –