|
Как увеличить скорость записи в таблицу?
|
|||
---|---|---|---|
#18+
Всем привет! CentOS7 + MariaDB10.3. Сервис пишет в БД сообщение при его появлении. Удивила низкая скорость записи - около 30 записей в секунду, обычный INSERT. Провёл эксперимент. Одна таблица, одно поле id (autoincrement). С клиентской машины в той же сети в цикле записываю поочередно 1000 записей. Скорость такая же около 30 записей в секунду. Пакетная запись - это крайний вариант, ждать промежутки времени для создания пакета в моём случае плохо. Как ускорить запись в таблицу? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 09:28 |
|
Как увеличить скорость записи в таблицу?
|
|||
---|---|---|---|
#18+
Molasar, по умолчанию включен режим автокомит и каждый запрос выполняется в отдельной транзакции надо быстрее - управляем транзакциями вручную и пишем несколько записей в одной транзакции ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 09:45 |
|
Как увеличить скорость записи в таблицу?
|
|||
---|---|---|---|
#18+
https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit В какое значение установлен? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 10:14 |
|
Как увеличить скорость записи в таблицу?
|
|||
---|---|---|---|
#18+
Дегтярев ЕвгенийMolasar, по умолчанию включен режим автокомит и каждый запрос выполняется в отдельной транзакции надо быстрее - управляем транзакциями вручную и пишем несколько записей в одной транзакции Я понимаю, что можно поднастроить базу, но 30 сек запись 1000 строк в таблицу с 1 полем в базу с настройками по умолчанию это норм? Или я что то не понимаю? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
время выполнения - 30 сек. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 11:04 |
|
Как увеличить скорость записи в таблицу?
|
|||
---|---|---|---|
#18+
miksoft https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit В какое значение установлен? все настройки по умолчанию. AutoCommit enable через MySql WorkBench ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 11:43 |
|
Как увеличить скорость записи в таблицу?
|
|||
---|---|---|---|
#18+
Локально на моей машине MariaDB по умолчанию пишет 1000 строк за 0.468 сек. Видно проблема где-то в настройках сервера. Будем смотреть. Это уже 3-я тема "Администрирование"))) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 13:02 |
|
Как увеличить скорость записи в таблицу?
|
|||
---|---|---|---|
#18+
MolasarВидно проблема где-то в настройках сервера.Я же дал вам конкретную настройку. Вы ее пробовали изменить? MolasarС клиентской машины в той же сети в цикле записываю поочередно 1000 записей.А почему в цикле, а не все сразу? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 23:56 |
|
Как увеличить скорость записи в таблицу?
|
|||
---|---|---|---|
#18+
miksoftMolasarВидно проблема где-то в настройках сервера.Я же дал вам конкретную настройку. Вы ее пробовали изменить? MolasarС клиентской машины в той же сети в цикле записываю поочередно 1000 записей.А почему в цикле, а не все сразу? innodb_flush_log_at_trx_commit = 1 Но менять не хочется, из-за отказоустойчивости. В цикле поочередно - это эмуляция реальной работы. Сообщения появляются время от времени и сохранять их надо по мере появления, пакетная запись не очень подходит. Это крайний вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 10:07 |
|
Как увеличить скорость записи в таблицу?
|
|||
---|---|---|---|
#18+
Molasar, Тогда меняйте диск на диск с низкой задержкой, SSD NVME или Optane какой-нибудь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 10:25 |
|
Как увеличить скорость записи в таблицу?
|
|||
---|---|---|---|
#18+
Или дисковый контроллер с кэшем на запись и с батарейкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 11:00 |
|
|
start [/forum/topic.php?fid=47&fpage=35&tid=1829112]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 329ms |
total: | 459ms |
0 / 0 |