250 миллионов строк не являются необоснованными в такой простой таблице:
CREATE TABLE UserMovieRecommendations (
user_id INT UNSIGNED NOT NULL,
movie_id INT UNSIGNED NOT NULL,
rank TINYINT UNSIGNED NOT NULL,
PRIMARY KEY (user_id, movie_id, rank),
FOREIGN KEY (user_id) REFERENCES Users(user_id),
FOREIGN KEY (movie_id) REFERENCES Movies(movie_id)
);
Это 9 байтов на строку.так что только около 2Гб.
25 * 10,000,000 * 9 bytes = 2250000000 bytes, or 2.1GB.
Возможно, вдвое больше, чтобы учесть индексы и так далее.Все еще нетрудно представить сервер MySQL, сконфигурированный для хранения всего набора данных в оперативной памяти.И, вероятно, нет необходимости хранить все данные в оперативной памяти, поскольку не все 10 миллионов пользователей будут одновременно просматривать их данные.
Возможно, вы никогда не достигнете 10 миллионов пользователей, но если вы это сделаете, я ожидаю, что выбудет использовать сервер с большим количеством памяти для этого.