0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 13
|
|||||||||||
1 | |||||||||||
Добавление множества записей в SQLite за одну транзакцию на примере Qt C++02.02.2017, 08:46. Показов 3866. Ответов 1
Доброе утро!
Передо мной стоит задача ускорить запись данных в БД. Бд использую SQLite, пишу на С++ Qt. Ознакомилась с интерестной статей, посвященной данному вопросу. В которой предлагался следующий вариант для ускорения записи в БД: увеличить количество insert-ов в одной транзакции. Безусловно, это увеличивает риск потери информации, но в то же время позволяет более оперативно добавлять данные в БД. Ссылка на саму статью: http://devpractice.ru/fast-insert-in-sqlite/ Исходя из этого я попыталась реализовать эту идею следующим образом:
Также подскажите пожалуйста какие еще способы можно предпринять для организации ускорения записи в БД? Может кто-то сможет поделиться своим опытом, как оптимальнее работать с БД
0
|
02.02.2017, 08:46 | |
Ответы с готовыми решениями:
1
Добавление записей в таблицу sqlite Запрос на одновременное добавление множества записей Добавление множества записей из выборки в таблицу одновременно Добавить данные в несколько таблиц за одну транзакцию |
93 / 93 / 33
Регистрация: 17.03.2012
Сообщений: 536
|
|
02.02.2017, 14:10 | 2 |
Если у вас запись данных в БД идет параллельно с чем-то, например, с работой пользователем, то было бы правильнее выделить работу с БД в отдельный поток, плюс добавить очередь
То есть у вас есть поток для работы с БД и поток для всего остального (ГУИ, например) Между потоками у вас есть один контейнер (например, QQueue), в который вы из одного потока данные запихиваете, а в другом вынимаете и записываете их в БД Таким образом по мере наполнения очереди-контейнера у вас будет происходить запись, а остальная работа будет продолжаться
0
|
02.02.2017, 14:10 | |
02.02.2017, 14:10 | |
Помогаю со студенческими работами здесь
2
Внесение нескольких строк данных за одну транзакцию Добавление данных в транзакцию Добавление записей невозможно: ключ связи таблицы не входит в набор записей Добавление записей невозможно: ключ связи таблицы не входит в набор записей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |