thực hành fBetter cho kích thước khổng lồ của bảng trên Ruby on Rails 4/ActiveRecordthực hành tốt hơn cho kích thước khổng lồ của bảng trên Ruby on Rails 4/ActiveRecord
Làm thế nào tôi có thể phân vùng một big table
trong postgreSQL
với Active Record
on Rails 4
Tôi thích PostgreSQL hoặc RDBMS khác, bởi vì tôi đã thử nó trong MongoDB. Nó thực sự chậm trên nó.
Là Rails 4
có hỗ trợ giải pháp tốt cho cả một bàn lớn không?
(trường hợp của tôi: hơn
50 billions
hồ sơ, kích thước khoảng20TB
)
mô tả dữ liệu
Có một bảng User
chứa name, personal_data, year
lĩnh vực.
Dữ liệu có thể được chia cho year
và dữ liệu sẽ được chia đều.
Ý tưởng
Tôi nghĩ rằng đó là not practical
để tạo ra nhiều mô hình như User_1950, User_2001,..., User_2015
Tôi muốn partition
toàn bộ dữ liệu bằng cách year
Có hai tiếp cận tôi có thể nghĩ đến
- được chia thành
physical table
khác nhau trong cùng một cơ sở dữ liệu. (sharding?) - được chia thành
physical database
khác nhau trên các cơ sở dữ liệu khác nhau. (Có thể nó hoạt động tốt với Rails)
Tôi muốn các giải pháp có thể tương thích với Active Record
nó sẽ hoạt động như
User.find(name: xxx, year: 1988)
User.find(name: xxx, year: 2012)
Vì vậy mà tôi không quan tâm về cách để truy cập vào nhiều bảng được phân đoạn.
Theo như tôi biết
Tôi tìm thấy một viên ngọc partitioned
nhưng mà không được hỗ trợ Rails 4
Sử dụng [thừa kế] (http://www.postgresql.org/docs/current/static/tutorial-inheritance.html) để phân vùng các bảng: http : //www.depesz.com/2015/06/07/partitioning-what-why-how/ –
@a_horse_with_no_name Xin chào, nhưng nó cũng có thể hỗ trợ hoạt động ghi trên đường ray 4. có vẻ như không có may mắn về nó? – newBike
Có vẻ như viên đá quý “phân vùng” mà bạn đang tìm kiếm có thể hỗ trợ Rails 4 bây giờ https://github.com/fiksu/partitioned/issues/44 –