Каждый пользователь может голосовать за любого видео, в настоящее время мы используем MySQL, но теперь у нас есть более 200 миллионов строк в одной таблице с полями, как это:Должен ли я использовать mysql или ssdb для хранения данных как/vote?
id
user_id # the voter
video_id # voted video
author_id # author of the video
state # 1 for normal and 0 for cancelled, maybe others
created_at
Самый распространенный запрос получить избирателей конкретных видео, но, возможно, избиратели видео определенного автора или видео, проголосовавшие определенным пользователем, также необходимы, обычно упорядоченные по времени.
Должен ли я оштукатурить таблицу в 100 осколков (по видео_иде) или вместо этого использовать ssdb?
Если я выберу первое, для запроса по запросу author_id или user_id данные должны храниться несколько раз.
Если я выбираю ssdb, я должен использовать упорядоченный набор и хранить временную метку в качестве оценки для сортировки и иметь несколько ключей для каждого пользователя или видео, чтобы запрашивать разные поля и обрабатывать разные состояния. И сложно изменить код и перенести данные.
Что такое «ssdb»? –
100 shards - вы готовы купить 100 серверов? («Sharding» подразумевает отдельные серверы.) –