Тайм-аут MySQL при индексации - PullRequest
0 голосов
/ 23 февраля 2019

Я загрузил файл размером 95 миллионов строк и 9 столбцов в базу данных MySQL на моей рабочей станции, которая имеет 32 ГБ памяти.Это генетические данные, где первые столбцы - это номер хромосомы (chr TINYINT) и положение генома (pos BIGINT).Я пытаюсь создать индекс в MySQL Workbench 8.0 для chr и pos, но индексация занимает часы, пока не истечет время ожидания.

Я также безуспешно пытался индексировать только хромосому (просто TINYINT с 1 по 22).Это нормально для индексации, чтобы висеть часами, как это?Диспетчер задач Windows говорит, что я использую только 8 ГБ памяти.

1 Ответ

0 голосов
/ 23 февраля 2019

Трюк, который работал для меня, когда я играл с SQL - добавить индекс перед загрузкой данных.

Сразу после выполнения оператора create table добавьте

ALTER TABLE <table_name> ADD KEY ...

Изатем начните загрузку.

Если в вашем дампе есть оператор CREATE TABLE ..., убедитесь, что он также имеет IF NOT EXISTS и не имеет DROP TABLE ....

Я не уверен насчет Windows,но для моей Ubuntu, которую я использовал в качестве сервера для игровой площадки MySQL, 16 ГБ ОЗУ было достаточно для обработки таблиц размером более 50 МБ.

...