Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / пакетное добавление данных в индексированную таблицу / 5 сообщений из 5, страница 1 из 1
10.05.2017, 21:00
    #39451012
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пакетное добавление данных в индексированную таблицу
У меня есть таблица с жирными индексами. И в нее постоянно идет запись. Если вот эти данные писать не по одной, а скажем по 10-20-50 в одной транзакции - это быстрее будет? Индекс обновляеться для кажой записи или при каждой транзакции?
...
Рейтинг: 0 / 0
10.05.2017, 21:25
    #39451020
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пакетное добавление данных в индексированную таблицу
alexnewsИндекс обновляеться для кажой записи или при каждой транзакции?Для каждой записи.
Впрочем, вопрос особого смысла не имеет, т.к. все равно разные записи будут попадать в разные блоки индексов.

Но, тем не менее, группировать несколько вставок в транзакции имеет некоторый смысл.

И покажите код вставки, возможно, еще что-то можно будет предложить.

Например, если поток реально большой, то имеет смысл буферизировать данные в файле, а потом вставлять их все разом командой LOAD DATA.
...
Рейтинг: 0 / 0
11.05.2017, 09:54
    #39451138
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пакетное добавление данных в индексированную таблицу
. Если вот эти данные писать не по одной, а скажем по 10-20-50 в одной транзакции - это быстрее будет?

быстрее будет, но не очень сильно.
лучше больше, по несколько тысяч записей.


Индекс обновляеться для кажой записи или при каждой транзакции?

это дело энджина, в принципе, для каждой транзакции, но это тебе не поможет.

короче, пакетируй по несколько тысяч записей в один insert, это автоматом будет одна транзакции, и один пакет (посылка) на сервер.

Да, если у тебя Isam, транзакций нет.
но все равно надо делать так же.
...
Рейтинг: 0 / 0
11.05.2017, 17:49
    #39451543
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пакетное добавление данных в индексированную таблицу
Спасибо за ответы, движек Innodb, решили делать реально транзакцию: генерю строку с 5 тыс insert'ов. Если я ее просто execute - то 5 секунд, если между START TRANSACTION и COMMIT - 0.36 секунды.

Еще раз спасибо за ответы.
...
Рейтинг: 0 / 0
11.05.2017, 19:50
    #39451631
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пакетное добавление данных в индексированную таблицу
alexnews,

Подозреваю, что вам нужно поменять innodb_flush_log_at_trx_commit с 1 на 0 или 2.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / пакетное добавление данных в индексированную таблицу / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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