Обновление MySQL 5.1 до 5.5 вызывает значительное замедление записи (индексы MyISAM +)

Мы только что обновили MySQL 5.1 до 5.5. Скрипт вставки, который раньше занимал ~ 3 минуты, чтобы вставить ~ 200 тыс. Строк в таблицу MyISAM с 3 индексами, теперь занимает ~ 8 минут! Удаление индексов решает проблему !?

Чтение (выбор) в порядке (быстрее в 5.5, чем в 5.1)

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

Заранее благодарим за любые указатели!

Системная информация:

Fedora 17, Mysql 5.5.29-log, 16 ГБ ОЗУ

Буфер ключей MyISAM = 4 ГБ

Размер индекса MyISAM = ~ 800 МБ

Размер таблицы MyISAM = 4,4 ГБ

Пул буферов INNODB = 8 ГБ

Таблица INNODB + размер индекса = ~ 12 ГБ

  • Вот определение таблицы для каждого запроса:

СОЗДАТЬ ТАБЛИЦУ MY_TABLE

(MY_TABLE_ID int (10) unsigned NOT NULL AUTO_INCREMENT,
FIELD_1 char (1) NOT NULL,
FIELD_2 int (11) NOT NULL,
FIELD_3 varchar (64) NOT NULL,
FIELD_4 varchar ( 64) DEFAULT NULL,
FIELD_5 varchar (64) DEFAULT NULL,
FIELD_6 varchar (8) DEFAULT NULL,
FIELD_7 varchar (64) DEFAULT NULL,
FIELD_8 varchar (64) DEFAULT NULL, < br> FIELD_9 varchar (64) ПО УМОЛЧАНИЮ NULL,
FIELD_10 varchar (16) ПО УМОЛЧАНИЮ NULL,
FIELD_11 varchar (124) ПО УМОЛЧАНИЮ NULL,
FIELD_12 varchar (124) ПО УМОЛЧАНИЮ NULL,
FIELD_13 varchar (124 ) DEFAULT NULL,
FIELD_14 varchar (32) DEFAULT NULL,
FIELD_15 varchar (32) DEFAULT NULL,
FIELD_16 varchar (64) DEFAULT NULL,
FIELD_17 varchar (64) DEFAULT NULL,
FIELD_18 varchar (64) ПО УМОЛЧАНИЮ NULL,
FIELD_19 varchar (64) ПО УМОЛЧАНИЮ NULL,
FIELD_20 char (1) ПО УМОЛЧАНИЮ NULL,
FIELD_21 текст,
FIELD_22 текст,
FIELD_23 текст, < br> FIELD_24 varchar (32) ПО УМОЛЧАНИЮ NULL,
FIELD_25 varchar (64) ПО УМОЛЧАНИЮ NULL,
FIELD_26 varchar (16) ПО УМОЛЧАНИЮ NULL,
FIELD_27 varchar (64) ПО УМОЛЧАНИЮ NULL,
FIELD_28 va rchar (64) DEFAULT NULL,
FIELD_29 текст,
FIELD_30 int (11) NOT NULL,
FIELD_31 varchar (16) DEFAULT NULL,
FIELD_32 varchar (16) DEFAULT NULL,
CREATION_DATE int (11) NOT NULL,
MODIFICATION_DATE отметка времени NULL ПО УМОЛЧАНИЮ NULL,
PRIMARY KEY (MY_TABLE_ID),
KEY I_FIELD_4 (FIELD_4),
KEY I_FIELD_2 (FIELD_2),
KEY I_FIELD_3 (FIELD_3 )) ДВИГАТЕЛЬ = MyISAM НАБОР ПО УМОЛЧАНИЮ = latin1


person Ben    schedule 24.01.2013    source источник
comment
Вы теперь используете движок InnoDB по умолчанию?   -  person Strawberry    schedule 24.01.2013
comment
Не уверен, что понимаю ваш вопрос. Таблица - MyISAM (как описано в исходном сообщении).   -  person Ben    schedule 24.01.2013
comment
В предыдущем посте описана исходная установка. Рассмотрите возможность создания таблицы SHOW CREATE.   -  person Strawberry    schedule 24.01.2013
comment
Просто добавлено определение таблицы для каждого запроса   -  person Ben    schedule 24.01.2013
comment
Подумав вслух, прежде чем углубиться в это, я вижу, что MySQL теперь имеет релиз-кандидат 5.6 (и MariaDB также имеет эквивалент 5.6). Прежде чем вы начнете настраивать настройки, мне просто интересно, можно ли где-нибудь наклеить один из них на другой ящик и посмотреть, исчезнет ли ваша проблема чудесным образом?   -  person Strawberry    schedule 24.01.2013
comment
Переход на 5.6 на данный момент невозможен. Слишком ново. Я не думаю, что его даже готово к производству. Фактически, мы очень обеспокоены нашим переходом на 5.5 прямо сейчас. 5.1 у нас работала нормально.   -  person Ben    schedule 24.01.2013
comment
Я не понимаю, почему переход на 5.5 должен вызвать это. Единственное, что я могу придумать, - это изучить использование таблицы оптимизации dev.mysql.com/doc/refman/5.5/en/optimize-table.html.   -  person Strawberry    schedule 24.01.2013
comment
Таблицы оптимизированы как часть заданий записи ... также удаляются и повторно вставляются индексы. Проблема встречается повсюду на разных столах ..   -  person Ben    schedule 24.01.2013


Ответы (2)


Что ж, после долгого устранения неполадок проблема была сужена до неисправных дисков. Не MySQL 5.5. Все теперь нормально с разными дисками ..

person Ben    schedule 01.02.2013

RAM слишком переполнена.

Для 16 ГБ ОЗУ и смеси InnoDB и MyISAM:

key_buffer_size = 1600M
innodb_buffer_pool_size = 6G
person Rick James    schedule 04.05.2016