Добавить столбец в таблицу 50M + записей?Самый эффективный способ? - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть таблица products, в которой более 50 миллионов записей.Я хочу отследить, кто загрузил данный продукт в мою систему, но простое добавление uploaded_by_id к такой огромной таблице не является решением, которое я ищу.Что еще, кроме таблицы соединений, я могу создать, чтобы иметь возможность запрашивать продукты, загруженные по заданному идентификатору в заданный промежуток времени?Product.where(uploaded_by_id: @user.id, created_at: time_range) - это то, что мне нужно, но мне нужен более эффективный способ.

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вместо того, чтобы касаться основной таблицы, добавьте другую таблицу (Вертикальное разбиение).Новая таблица будет иметь тот же PRIMARY KEY, но не AUTO_INCREMENT.Новый столбец (столбцы) попадет в эту таблицу.

Создавайте строки в новой таблице только тогда, когда новые столбцы имеют значение.

Когда вам не нужны новыестолбцы, продолжить чтение только из старой таблицы.

Если вам также нужны новые столбцы, используйте LEFT JOIN.

0 голосов
/ 29 сентября 2018

Возможно, вы захотите взглянуть на такие инструменты, как

Оба инструмента позволяют изменять таблицы без их блокировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...