Производительность вставки SQLite - PullRequest
7 голосов
/ 05 декабря 2010

Мне нужно записать отдельные строки в файл, размещенный на файловом сервере.Я рассматриваю возможность использования SQLite, чтобы гарантировать, что запись строки была успешной, а не только частично завершена.Однако, как производительность вставки действительно имеет важное значение.Мой вопрос: каков точный процесс (когда он читает это, пишет это, читает это и так далее), через который проходит SQLite, когда он вставляет строку в таблицу.В таблице нет ни индексов, ни первичных ключей, ни ограничений, ни чего-либо.

Ответы [ 3 ]

14 голосов
/ 05 декабря 2010

Это наиболее распространенное узкое место в моем опыте:

http://www.sqlite.org/faq.html#q19

За исключением этого, SQLite действительно быстр. :)

10 голосов
/ 05 декабря 2010

Вы должны использовать транзакции и, таким образом, стараться избегать fsync() -ing на каждом INSERT. Взгляните здесь на некоторые тесты.

Кроме того, не забудьте правильно установить два важных pragmas:

0 голосов
/ 05 декабря 2010

вы можете использовать для подробностей объяснение того, что происходит при выполнении оператора: http://www.sqlite.org/lang_explain.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...