Огромные различия во времени для выполнения запроса - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть таблица sqlite, которую я создаю следующим образом:

CREATE TABLE data (Year TEXT, County TEXT, Region TEXT, Town TEXT, Page TEXT, Surname TEXT, Forename TEXT, Age TEXT, Sex TEXT, Relation TEXT, Religion TEXT, Birthplace TEXT, Occupation TEXT, Literacy TEXT, Language TEXT, Marital_Status TEXT, Specified_Illnesses TEXT, Years_Married TEXT, Children_Born TEXT, Children_Living TEXT, House_Name TEXT);

Таблица не имеет отношения к любым другим таблицам в моей базе данных.В таблице 9 миллионов строк.БД составляет 1,5 ГБ.Существуют огромные различия во времени выполнения отдельных запросов, например:

sqlite> .timer ON
sqlite> SELECT DISTINCT Year FROM census_data;
[Two values outputted]
Run Time: real 18.921 user 1.880007 sys 0.932251

Затем я выполнил:

sqlite> SELECT DISTINCT County FROM census_data;
[50 values outputted]
Run Time: real 6.444 user 2.437792 sys 0.746738

Затем:

sqlite> SELECT DISTINCT Year FROM census_data;
[Two values outputted]
Run Time: real 5.643 user 1.717557 sys 0.758017

Затем:

sqlite> SELECT DISTINCT County FROM census_data;
[50 values outputted]
Run Time: real 3.106 user 2.394552 sys 0.689175

Затем я начал писать этот пост, прежде чем вернуться к sqlite3, и на этот раз я получаю:

sqlite> SELECT DISTINCT County FROM census_data;
[50 values outputted]
Run Time: real 90.853 user 2.691074 sys 1.718229

Является ли проблема в моей таблице или мне нужно предоставить sqlite3больше памяти, и если да, то как мне это сделать?

ОБНОВЛЕНИЕ

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

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