WebMaster's Social Network

Сообщество русскоязычных вебмастеров и дорвейщиков в формате блогов - дорвеи, доргены, партнерские программы, заработок в интернете.


Atom

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

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

Ответы:
Mik Foxi Mik Foxi #59610 2016-08-01 15:42
Задачи усложняются ))) но я уже все сказал. busyTimeout, journal_mode=WAL и чтоб между BEGIN IMMEDIATE и COMMIT никакая фигня не тормозила. Т.е. сначала парсишь, потом подключаешься к базе и вставляешь с транзакцией. А в твоем случае транзакция у тебя изза парсинга зависает на минуту, хотя могла вставиться за доли секунды.

Роман Питерский Роман Питерский #59612 2016-08-01 16:08
https://imgwm.com/upload/d77/3d7/265feb24971f3df8474f595dd7.jpeg у тебя что-то не правильно спроектировано, тормозить не должно. Делай так, как советует Mik: вначале парсишь и обрабатываешь текст, а потом уже вставляешь через транзакции. У меня temp_store = MEMORY, скорость записи в БД иногда доходит и до 10к в секунду.

Mik Foxi Mik Foxi #59613 2016-08-01 16:29
Роман Питерский, ну не всегда MEMORY надежно. Если важно не похерить базу или не синхронизированные данные.

Mik Foxi Mik Foxi #59614 2016-08-01 16:37
Роман Питерский, навели меня на мысли ))) выход нового доргена откладывается, появились идеи оптимизации.

jonamid jonamid #59617 2016-08-01 16:47
Mik Foxi, может тогда идеи и пожелания начать собирать, авось еще чего годного надумаешь

Mik Foxi Mik Foxi #59618 2016-08-01 16:48
jonamid, хочешь чтоб дорген вообще не вышел изза потока идей? )))

Роман Питерский Роман Питерский #59619 2016-08-01 16:52
Mik Foxi, что за идеи по оптимизации? ) колись! )))

jonamid jonamid #59621 2016-08-01 16:57
Mik Foxi, ну можно по важности разделить, самые важные сразу внедрить, а остальные потом в обновы сувать)

Mik Foxi Mik Foxi #59622 2016-08-01 16:59
Роман Питерский, да у меня там тоже тормоза внутри транзакций ))) и еще некоторые лишние действия, которые можно упростить.

Роман Питерский Роман Питерский #59623 2016-08-01 17:09
Mik Foxi, понятно, я внутри транзакций все лишнее повыкидывал. MEMORY ставлю только при создании БД, потом меняю на DEFAULT.

jkeks jkeks #59664 2016-08-02 07:34
MySQL же.. Ну или файлы, файлики вообще самое надежное.

Atom Atom #59762 2016-08-03 15:06
jkeks, файликам свойственно обнуляться полностью, при нехватке оперативки.