MySQL: оптимизировать разбиение для ускорения запросов

У меня есть таблицы MySQL, в которых хранятся крипто-торговые операции, по одной таблице для каждой пары. Однако эти таблицы становятся все тяжелее и тяжелее, а запросы выполняются бесконечно.

Вот формат одного из них:

    CREATE TABLE `aggtrade_bina_adabnb` (
      `exchange_code` varchar(16) NOT NULL,
      `symbol` varchar(16) NOT NULL,
      `aggtrade_id` bigint(20) NOT NULL,
      `price` decimal(16,8) NOT NULL,
      `quantity` decimal(16,8) NOT NULL,
      `first_breakdown_trade_id` bigint(20) NOT NULL,
      `last_breakdown_trade_id` bigint(20) NOT NULL,
      `trade_time` bigint(20) NOT NULL,
      `is_buyer_maker` tinyint(1) NOT NULL,
      `live_data` tinyint(1) DEFAULT 1
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
    PARTITION BY HASH (`aggtrade_id`)
    PARTITIONS 4;

Конечно, я знаю, что мое текущее разбиение на разделы ужасно. Однако мне было интересно, есть ли способ автоматически разделить эту таблицу в зависимости от поля trade_time, чтобы у меня была одна секция на каждый месяц, без необходимости указывать эти месяцы во время создания таблицы.

Заранее спасибо за помощь.


person MD-FRA-83    schedule 25.01.2020    source источник
comment
На вашем столе нет указателя. Используйте индекс, чтобы ускорить ваш запрос   -  person Bernd Buffen    schedule 25.01.2020
comment
Разделение по trade_time будет полезно только для запросов с параметром trade_time в предложении WHERE. Поэтому вам нужно знать, что чаще всего запрашивает эту таблицу, прежде чем принимать решение о секционировании.   -  person Slava Rozhnev    schedule 25.01.2020
comment
Бернд: Да, есть индекс для trade_time, но я убрал его из примера. Слава: Все мои запросы полагаются на trade_time ...   -  person MD-FRA-83    schedule 25.01.2020
comment
Пожалуйста, прочтите это, особенно раздел о производительности запросов. meta.stackoverflow.com/a/271056. Затем задайте еще один вопрос, чтобы предоставить дополнительную информацию, чтобы мы могли помочь вам лучше. Часто хорошие индексы помогают гораздо больше, чем разделы.   -  person O. Jones    schedule 25.01.2020