Что будет с моей базой данных sqlite через десять лет с точки зрения емкости и скорости запросов - PullRequest
0 голосов
/ 13 мая 2019

Я создал базу данных с одной таблицей (проверьте код ниже).Я планирую вставлять 10 строк в минуту, что составляет около 52 миллионов строк через десять лет.

Мой вопрос заключается в том, что я могу ожидать с точки зрения емкости базы данных и сколько времени потребуется для выполнения запроса select.Конечно, я знаю, что вы не можете предоставить мне абсолютные значения, но если вы можете дать мне какие-либо советы по изменению / скорости, ловушкам и т. Д., Я был бы очень рад.

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

create table if not exists my_table (
date_observation default current_timestamp,
observation_name text,
value_1 real(20),
value_1_name text,
value_2 real(20),
value_2_name text,
value_3 real(20),
value_3_name text);

1 Ответ

0 голосов
/ 13 мая 2019

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

Более подходящие абзацы: -

Максимальное количество строк в таблице

Теоретическое максимальное количество строк в таблице составляет 2 ^ 64 (18446744073709551616 или около 1,8е + 19). Этот предел недоступен поскольку будет достигнут максимальный размер базы данных 140 терабайт первый. База данных объемом 140 терабайт может содержать не более приблизительно 1e + 13 строк, и только в том случае, если индексов нет и каждая строка содержит очень мало данных.

Максимальный размер базы данных

Каждая база данных состоит из одной или нескольких «страниц». В течение одного база данных, каждая страница имеет одинаковый размер, но разные базы данных могут иметь размеры страниц, которые являются степенями двух между 512 и 65536 включительно. Максимальный размер файла базы данных составляет 2147483646 страниц. На максимальный размер страницы 65536 байт, это означает максимальный размер размер базы данных приблизительно 1,4e + 14 байт (140 терабайт или 128 тибибайт, или 140000 гигабайт или 128000 гигабайт).

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

Определение скорости имеет много аспектов и, следовательно, не так просто, как быстро она будет двигаться, как автомобиль. Файловая система, память, оптимизация - все это факторы, которые необходимо учитывать. Таким образом, ответ такой же, как длина анекдотического фрагмента строки.

  • Примечание 18446744073709551616 - если вы используете отрицательные числа, в противном случае более часто упоминаемое число 9223372036854775807 - это предел (то есть 64-разрядное целое число со знаком)

    • Чтобы использовать отрицательные числа rowid и, следовательно, более высокий диапазон, вы должны явно вставить хотя бы 1 отрицательное значение в rowid или его псевдоним согласно Если отрицательные значения ROWID не вставляются явно, автоматически генерируемые значения ROWID будут всегда быть больше нуля.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...