SQLite: предотвращение фрагментации - PullRequest
1 голос
/ 13 октября 2011

Мне нужно заполнить базу данных миллионами записей, и моя текущая процедура для этого выглядит примерно так:

For I = 1 to 10000000
     INSERT INTO TABLE1 ...
     INSERT INTO TABLE2 ...
     INSERT INTO TABLE3 ...
Next

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

For I = 1 to 10000000
     INSERT INTO TABLE1 ...
Next

For I = 1 to 10000000
     INSERT INTO TABLE2 ...
Next

For I = 1 to 10000000
     INSERT INTO TABLE3 ...
Next

Или для производительности запросов не имеет значения, как данные структурированы на диске?

1 Ответ

2 голосов
/ 13 октября 2011

Используя второй подход, вы получите немного крошечную производительность, если вам все равно, чтобы принять это во внимание. Но это зависит от физического диска, сколько стоит фрагментация.

Я думаю, вам следует сосредоточиться на оптимизации базы данных и запросов.

...