powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как быстро перенести данные из таблицы MyISAM to InnoDB ?
22 сообщений из 22, страница 1 из 1
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38862819
Фотография Yed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Есть таблица MyISAM ~70.000.000 записей, размер ~7,5 Гб. На тестовой машине пытаюсь перенести эти данные в InnoDB таблицу в рамках одной БД. Создал новую таблицу innodb с такой же структурой как myisam, но без дополнительных индексов. Параметр "innodb_flush_log_at_trx_commit" установил = 0. Далее запросом "insert into <innodb> select from <myisam>" пытался вставить старые данные в новую таблицу. Так вот этот процесс невероятно длительный, за прошедшую ночь вставилось только около 30% данных. Такая скорость неприемлема для рабочего сервера. Как увеличить скорость переноса данных? MySQL 5.5.
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38863592
Goretsv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yed,
Не сказал бы что это очень много, имхо с сервером или базай чтото не то.
А разве нельзя саму таблицу преобразовать в Иннобд?
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38863601
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, самый быстрый способ - это SELECT INTO OUTFILE / LOAD DATA INFILE.
Возможно, ALTER TABLE ENGINE = InnoDB и окажется немного быстрее - но? в отличие от предыдущего варианта? убеждённости нет, ибо реализация неизвестна.
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38863809
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо бы тогда и другие параметры innodb пересмотреть - увеличить размер буфера и логов.
Если не получится - так может и не нужен вам innodb ?

Опять же, что это еще за "тестовая машина " ? какой-то перегруженный тухляк на microsoft hyper-v и СХД, как это обычно принято в корпоративной среде? он не будет быстро работать по определению.
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38863838
Фотография Yed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конвертацию типа я пробовал, но она так же длится очень долго.
Перед началом переноса данных таблицу проверил средствами Mysql.

Цель изменения типа - провести некоторые эксперименты с InnoDb. Рабочую базу с MyISAM пока не трогаю, а может и не буду трогать! Хочу понять, насколько потеряю (или нет?) в скорости в моих задачах, в обмен на надежность.

Тестовая машина - обычный рабочий комп i5-3450, ОЗУ 8Гб, hdd sata-III.

так, в с буферами и дампом поиграюсь .
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38864496
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YedЗдравствуйте.
Есть таблица MyISAM ~70.000.000 записей, размер ~7,5 Гб.


Это в общем немало, т.е. дофига.
В принципе, вставки в MySQL никак не оптимизируются, нет никаких режимов ускоренной вставки и т.п.
Так что просто жди.

Индексы на таблицу нужно удалять не все, первичные ключи нужно оставлять, иначе потом сервер будет ещё раз перезаписывать таблицу всё на новое место (напомню, что в InnoDB первичные ключи кластерные).
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38864618
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ принципе, вставки в MySQL никак не оптимизируются, нет никаких режимов ускоренной вставки и т.п.
пруф?
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38864708
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторВ принципе, вставки в MySQL никак не оптимизируются, нет никаких режимов ускоренной вставки и т.п.
пруф?

Так ты бы привела ссылку на описание, как они оптимизируются, и был бы антипруф.
Как я могу привести ссылку на ничто ?
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38864718
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html

хотябы innodb_flush_log_at_trx_commit.

дальше сами почитайте.
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38864986
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowхотябы innodb_flush_log_at_trx_commit.Это ТС уже включил.
Ну и всё-таки настройки движка <> режим ускоренной вставки. Этак можно создать таблицу назначения с движком memory и тоже назвать это "режимом ускоренной вставки" :)
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38865203
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YedЗдравствуйте.
Есть таблица MyISAM ~70.000.000 записей, размер ~7,5 Гб. На тестовой машине пытаюсь перенести эти данные в InnoDB таблицу в рамках одной БД. Создал новую таблицу innodb с такой же структурой как myisam, но без дополнительных индексов. Параметр "innodb_flush_log_at_trx_commit" установил = 0. Далее запросом "insert into <innodb> select from <myisam>" пытался вставить старые данные в новую таблицу. Так вот этот процесс невероятно длительный, за прошедшую ночь вставилось только около 30% данных. Такая скорость неприемлема для рабочего сервера. Как увеличить скорость переноса данных? MySQL 5.5.


Первичный ключ создал? если нет создай.

и вставка ни как по пало, а данных отсортированных по первичному ключу...ну чтобы при инсерте не надо было постоянно тасовать данные.
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38865236
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yed,

30% за сутки для такого железа и 7.5 гектарной базы ... как-то долго. У меня на компе сейчас хранится около 70 гектар и то, за пару суток апается из дампа новая БД... машинка одноядерный Атлон 3200... что я делаю не так?
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38865301
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html

хотябы innodb_flush_log_at_trx_commit.

дальше сами почитайте.

0) читал не раз.
1) это оптимизация не вставок, а всех модифицирующих транзакций. я говорил об оптимизации вставок.
У большинства более других СУБД есть специальные режимы работы для очень быстрой загрузки данных
как правило без использования ACID-транзакций и с минимизацией журналирования.
2) В MySQL даже индексы бессмысленно (вредно) удалять перед загрузкой, таблица будет перезаписываться
в новое место при создании нового кластерного индекса.
3) думай, прежде чем что-то пишешь в форум.
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38865503
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор2) В MySQL даже индексы бессмысленно (вредно) удалять перед загрузкой, таблица будет перезаписываться
в новое место при создании нового кластерного индекса.
3) думай, прежде чем что-то пишешь в форум.

эм. расскажите плз СУБД в котором таблица не будет пересоздаваться при создании нового кластерного индекса.
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38865638
Фотография Yed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453Первичный ключ создал? если нет создай.
Первичный есть.

Arhat10930% за сутки для такого железа и 7.5 гектарной базы ... как-то долго. У меня на компе сейчас хранится около 70 гектар и то, за пару суток апается из дампа новая БД... машинка одноядерный Атлон 3200... что я делаю не так?
Согласен - очень долго! Ты, видимо, все делаешь как нужно :)

Я уже попробовал восстановить через дамп. Самое интересное происходит вот что - сначала процесс идет довольно быстро и файл базы ibdata1 шустро растет, по после нескольких сотен Мб процесс во что-то "упирается" и файл продолжает довольно медленно пополняться.
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38865734
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну дык возьми и посмотри во что.
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38865759
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yedсначала процесс идет довольно быстро и файл базы ibdata1 шустро растет, по после нескольких сотен Мб процесс во что-то "упирается" и файл продолжает довольно медленно пополняться.Это при отключенных индексах или как?
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38865868
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yed,

Дык! В том то и дело, что ничего не делал... просто винт начал сбоить, а на нем сидел Мускуль. Вот пока он не загнулся окончательно, сделал дамп. Правда у меня там не одна БД, а штук 10-15 ... самая большая 13.5 гектар, есть ещё пара по 6-8 Гб... запустил mysqldump и потом, поставив новый винт апнул все на него.
Но я работаю только с InnoDb в варианте XtraDb. В смысле MyIsam-овских баз у меня нет по жизни ... может поэтому?

Самая большая ДБ апалась часов 12, если не больше. Я пристально не следил, просто обнаружил на вторые сутки что "Усё".
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38866654
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавтор2) В MySQL даже индексы бессмысленно (вредно) удалять перед загрузкой, таблица будет перезаписываться
в новое место при создании нового кластерного индекса.
3) думай, прежде чем что-то пишешь в форум.

эм. расскажите плз СУБД в котором таблица не будет пересоздаваться при создании нового кластерного индекса.

Sybase ASE, DOL-таблица.
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38867030
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivScareCrowпропущено...


эм. расскажите плз СУБД в котором таблица не будет пересоздаваться при создании нового кластерного индекса.

Sybase ASE, DOL-таблица.
да неужели?

авторTo create a clustered index, Adaptive Server duplicates the existing data; the server deletes the original data when the index is complete
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38867323
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowMasterZivпропущено...


Sybase ASE, DOL-таблица.
да неужели?

авторTo create a clustered index, Adaptive Server duplicates the existing data; the server deletes the original data when the index is complete

Это не DOL.
...
Рейтинг: 0 / 0
Как быстро перенести данные из таблицы MyISAM to InnoDB ?
    #38867336
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivScareCrowпропущено...

да неужели?

пропущено...


Это не DOL.
автор leaf level of the DOL clustered index is *not* the datapages.
if it is not possible to insert a
row at the right spot in the table, it will be inserted somewhere else.
So this is why the data rows usually will be ordered along the clustered
index key, but they don't always have to be.

спасибо - все свободны. это профанация а не кластерный индекс.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как быстро перенести данные из таблицы MyISAM to InnoDB ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]