![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
evgen55 |
![]()
Сообщение
#1
|
Новичок Группа: Неактивирован Сообщений: 8 Регистрация: 24.7.2017 Пользователь №: 4590 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Есть база данных mysql на удаленном сервере. При обращении к таблице каждый запрос выполняется около 40 мс. Возможно ли както повысить скорость. Пробовал все это оборачивать в одну транзакцию но скорость от этого только уменьшилась
потом в цикле подставляю параметры
И потом делаю
Есть база данных mysql на удаленном сервере. При обращении к таблице каждый запрос выполняется около 40 мс. Возможно ли както повысить скорость. Пробовал все это оборачивать в одну транзакцию но скорость от этого только уменьшилась
потом в цикле подставляю параметры
И потом делаю
P.S. ОС Windows |
|
|
![]() |
lanz |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Во первых QTime на Windows возвращает с точностью кратной то ли 15, то ли 20 мс, в любом случае, это слишком плохо.
Попробуйте QElapsedTimer, интерфейс тот же, а точность обычно лучше. http://doc.qt.io/qt-4.8/qelapsedtimer.html Если все равно 40 мс будет получаться, замерьте время всего цикла(с 40000-80000 вставок) и разделите, тогда получите точное время. 40000-80000 вставок это довольно много, попробуйте все таки execBatch и если не поможет, то попробуйте просто слепить в строке нужный запрос на вставку всех строк за раз и его выполнить - получите скорость вставки напрямую. |
|
|
evgen55 |
![]()
Сообщение
#3
|
Новичок Группа: Неактивирован Сообщений: 8 Регистрация: 24.7.2017 Пользователь №: 4590 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Во первых QTime на Windows возвращает с точностью кратной то ли 15, то ли 20 мс, в любом случае, это слишком плохо. Попробуйте QElapsedTimer, интерфейс тот же, а точность обычно лучше. http://doc.qt.io/qt-4.8/qelapsedtimer.html Если все равно 40 мс будет получаться, замерьте время всего цикла(с 40000-80000 вставок) и разделите, тогда получите точное время. 40000-80000 вставок это довольно много, попробуйте все таки execBatch и если не поможет, то попробуйте просто слепить в строке нужный запрос на вставку всех строк за раз и его выполнить - получите скорость вставки напрямую. Спасибо большое, слепить запрос в одну строку помогло. execBatch пробовал он не поддерживается |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 5.4.2025, 14:38 |