Изменить таблицу разделов с 60 миллионами строк производительности проблемы - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь разделить таблицу с 60 миллионами строк данных на основе года.

Технические характеристики: MySQL 5.7.1 ОС: windows

ALTER TABLE full_data PARTITION BY RANGE (YEAR(ProcessDate))(
    PARTITION years VALUES LESS THAN (2019)
 ) ;

За прошедший день,процесс запущен.Не могли бы вы помочь мне улучшить производительность.enter image description here

CREATE TABLE full_data` (
    Mobile bigint(11) DEFAULT NULL, 
    Name varchar(200) DEFAULT NULL, 
    Barcode varchar(200) DEFAULT NULL, 
    Batch varchar(200) DEFAULT NULL, 
    Carton varchar(500) DEFAULT NULL, 
    Doctype varchar(500) DEFAULT NULL, 
    Rack varchar(500) DEFAULT NULL, 
    ProcessDate datetime DEFAULT NULL, 
    KEY Mobile (Mobile,Barcode), 
    KEY MobileBarcode (Mobile,Barcode)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; '

1 Ответ

0 голосов
/ 28 мая 2019

Такой ALTER займет несколько часов, чтобы скопировать все данные из существующей таблицы во временную таблицу, а затем заменить ее на место. Дисковый ввод / вывод занимает время.

Но почему это разделение? Только в редких случаях это обеспечит какую-либо выгоду производительности Сколько лет у вас есть? Какие запросы вы выполняете к таблице? Пожалуйста, предоставьте SHOW CREATE TABLE.

Если у вас проблемы с производительностью, давайте начнем с EXPLAIN SELECT ...

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