Ускорение строительства БД SQLite - PullRequest
1 голос
/ 07 февраля 2012

Я собираюсь использовать SQLite для сохранения большого количества данных в режиме реального времени.

Чтобы избежать процедур поиска дискового пространства (или перемещения страниц в файле БД) для новых данных, которые будут записаны в БД в режиме реального времени, я хочу заранее составить таблицы и вставить в нихсамые большие данные, которые может иметь любая ячейка (в соответствии с ее типом), поэтому в режиме реального времени будут выполняться только запросы «ОБНОВЛЕНИЯ».

Построение и вставка данных производится в режиме journal_mode=WAL.

У меня есть 6 разных файлов БД, которые я должен построить.Каждая БД имеет от 10 до 200 таблиц, где все таблицы во всех БД выглядят одинаково:

ID  |  TimeStart     |   Float data   |   Float data   |   Float data
--------------------------------------------------------------------------------

Разница в том, что есть некоторые таблицы с 100000 строками, а некоторые с 500000 строками.

Эти БД построены на SD-карте с процессором ARM9 (в Linux), поэтому для создания БД требуется много времени.Я говорю о некоторых днях.

Как я могу ускорить строительство?Есть ли какие-нибудь «прагмы» или трюки, которые я могу сделать?Могу ли я скопировать готовую таблицу?

Важно отметить, что надежность БД не важна в процессе сборки - для меня гораздо важнее скорость, чем возможность повреждения БД.

Ответы [ 3 ]

1 голос
/ 07 февраля 2012

Я согласен с ответом @Graham Borland, но также: если у вас есть какие-либо индексы, я бы посоветовал вам не создавать их до тех пор, пока после вы не добавите все данные в БД. Если вы добавите их заранее, индексы обновляются каждый раз, когда вы вставляете новую запись, что значительно замедляет процесс, когда вы вставляете очень большое количество строк в быстрой последовательности.

0 голосов
/ 07 февраля 2012

Читать это , это очень актуально.Ответы Грэма Борланда и Ника Шоу также очень актуальны и являются частью совета в связанном документе, который я вам дал.

0 голосов
/ 07 февраля 2012

Предварительно сгенерируйте базу данных на вашем хост-компьютере и скопируйте ее при установке приложения на целевое устройство.

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