Search by WMSN

Так все таки, как оптимизировать активную многопоточную запись в базу #SQLite, чтобы она не тормозила и не лочилась?

Answers:

Задачи усложняются ))) но я уже все сказал. busyTimeout, journal_mode=WAL и чтоб между BEGIN IMMEDIATE и COMMIT никакая фигня не тормозила. Т.е. сначала парсишь, потом подключаешься к базе и вставляешь с транзакцией. А в твоем случае транзакция у тебя изза парсинга зависает на минуту, хотя могла вставиться за доли секунды.

imgwm.com у тебя что-то не правильно спроектировано, тормозить не должно. Делай так, как советует Mik: вначале парсишь и обрабатываешь текст, а потом уже вставляешь через транзакции. У меня temp_store = MEMORY, скорость записи в БД иногда доходит и до 10к в секунду.

Роман Питерский, ну не всегда MEMORY надежно. Если важно не похерить базу или не синхронизированные данные.

Роман Питерский, навели меня на мысли ))) выход нового доргена откладывается, появились идеи оптимизации.

Mik Foxi, может тогда идеи и пожелания начать собирать, авось еще чего годного надумаешь

jonamid, хочешь чтоб дорген вообще не вышел изза потока идей? )))

Mik Foxi, что за идеи по оптимизации? ) колись! )))

Mik Foxi, ну можно по важности разделить, самые важные сразу внедрить, а остальные потом в обновы сувать)

Роман Питерский, да у меня там тоже тормоза внутри транзакций ))) и еще некоторые лишние действия, которые можно упростить.

Mik Foxi, понятно, я внутри транзакций все лишнее повыкидывал. MEMORY ставлю только при создании БД, потом меняю на DEFAULT.

MySQL же.. Ну или файлы, файлики вообще самое надежное.

jkeks, файликам свойственно обнуляться полностью, при нехватке оперативки.