Быстрая вставка строк в базу данных mysql |
Здравствуйте, гость ( Вход | Регистрация )
Быстрая вставка строк в базу данных mysql |
evgen55 |
24.7.2017, 14:25
Сообщение
#1
|
Новичок Группа: Неактивирован Сообщений: 8 Регистрация: 24.7.2017 Пользователь №: 4590 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть база данных mysql на удаленном сервере. При обращении к таблице каждый запрос выполняется около 40 мс. Возможно ли както повысить скорость. Пробовал все это оборачивать в одну транзакцию но скорость от этого только уменьшилась
потом в цикле подставляю параметры
И потом делаю
Есть база данных mysql на удаленном сервере. При обращении к таблице каждый запрос выполняется около 40 мс. Возможно ли както повысить скорость. Пробовал все это оборачивать в одну транзакцию но скорость от этого только уменьшилась
потом в цикле подставляю параметры
И потом делаю
P.S. ОС Windows |
|
|
lanz |
24.7.2017, 20:35
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
А где собственно вставка?
Попробуйте забиндить сразу все subject_id,
|
|
|
evgen55 |
25.7.2017, 8:11
Сообщение
#3
|
Новичок Группа: Неактивирован Сообщений: 8 Регистрация: 24.7.2017 Пользователь №: 4590 Спасибо сказали: 0 раз(а) Репутация: 0 |
Запрос вставки содержит много полей поэтому не хотелось его здесь указывать
|
|
|
lanz |
25.7.2017, 9:04
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Еще так можно попробовать.
http://doc.qt.io/qt-5/qsqlquery.html#execBatch |
|
|
lanz |
25.7.2017, 10:09
Сообщение
#5
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
|
|
|
Iron Bug |
25.7.2017, 21:47
Сообщение
#6
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
|
|
|
evgen55 |
27.7.2017, 16:29
Сообщение
#7
|
Новичок Группа: Неактивирован Сообщений: 8 Регистрация: 24.7.2017 Пользователь №: 4590 Спасибо сказали: 0 раз(а) Репутация: 0 |
qDebug() << DB.driver()->hasFeature(QSqlDriver::PreparedQueries); qDebug() << DB.driver()->hasFeature(QSqlDriver::BatchOperations); qDebug() << DB.driver()->hasFeature(QSqlDriver::Transactions); Все возвращает false. Я правильно понимаю что ни пакетная вставка ни транзакции не поддерживаются? Что можно сделать? |
|
|
lanz |
27.7.2017, 19:09
Сообщение
#8
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Что тотут не так, транзакции не поддерживаются - это очень странно.
Цитата Note that some databases need to be open() before this can be determined.
|
|
|
evgen55 |
27.7.2017, 20:40
Сообщение
#9
|
Новичок Группа: Неактивирован Сообщений: 8 Регистрация: 24.7.2017 Пользователь №: 4590 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
lanz |
28.7.2017, 16:13
Сообщение
#10
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Прежде всего посмотрите, где у вас задержка, в Qt? При соединении с сервером? На сервере? В зависимости от этого нужно смотреть что конкретно оптимизировать.
|
|
|
Текстовая версия | Сейчас: 25.11.2024, 1:17 |