Я нахожусь в ситуации, когда мне нужно хранить данные для 1900+ криптовалют каждую минуту, я использую MySQL innoDB.
В настоящее время таблица выглядит так
coins_minute_id | coins_minute_coin_fk | coins_minute_usd | coins_minute_btc | coins_minute_datetime | coins_minute_timestamp
coins_minute_id = autoincrement id
coins_minute_coin_fk = medium int unsigned
coins_minute_usd = decimal 20,6
coins_minute_btc = decimal 20,8
coins_minute_datetime = datetime
coins_minute_timestamp = timestamp
Таблица невероятно быстро росла за считанные минуты, каждую минуту в нее добавлялось 1900+ строк.
Данные будут использоваться для исторического отображения цены в виде линейного графика D3.js
для каждой криптовалюты.
У меня вопрос: как лучше оптимизировать эту базу данных, я думал только о том, что собираю данные каждые 5 минут вместо 1, но это все равно добавит много данных за короткое время, я также подумал, что если Лучше было создать уникальную таблицу для каждой криптовалюты. Кто-нибудь из вас, кто любит проектировать базы данных, знает какой-нибудь другой очень умный и умный способ делать подобные вещи?
С наилучшими пожеланиями
(из комментария)
SELECT coins_minute_coin_fk, coins_minute_usd
FROM coins_minutes
WHERE coins_minute_datetime >= DATE_ADD(NOW(),INTERVAL -1 DAY)
AND coins_minute_coin_fk <= 1000
ORDER BY coins_minute_coin_fk ASC