Дайте простую таблицу sqlite3 (create table data (key PRIMARY KEY,value)
) с размером ключа 256 байт и значением размером 4096 байт, каков предел (игнорируя ограничения на дисковое пространство) на максимальное количество строк в этой таблице sqlite3? Связаны ли ограничения с ОС (win32, linux или Mac)
Максимальное количество строк в таблице sqlite
Ответ 1
В SQLite3 размер поля не фиксирован. Двигатель будет выделять столько места, сколько необходимо для каждой ячейки.
Для лимита файлов см. этот вопрос SO:
Каковы характеристики производительности sqlite с очень большими файлами базы данных?
Ответ 2
По состоянию на январь 2017 года страница с ограничениями на sqlite3 определяет практические пределы этого вопроса на основе максимального размера базы данных, которая составляет 140 терабайт
Максимальное количество строк в таблице
Теоретическое максимальное количество строк в таблице составляет 2 ^ 64 (18446744073709551616 или около 1,8e + 19). Этот предел недостижим, так как максимальный размер базы данных составляет 140 терабайт. База данных размером 140 терабайт может содержать не более 1e + 13 строк, а затем только если нет индексов, и если каждая строка содержит очень мало данных.
Таким образом, с максимальным размером базы данных в 140 терабайт вам повезло бы получить ~ 1 триллион строк, поскольку, если бы у вас действительно была полезная таблица с данными, количество строк было бы ограничено размером данных. Вероятно, у вас может быть до 10 с миллиардов строк в базе данных 140 ТБ.
Ответ 3
У меня есть база данных SQLite размером 3,3 ГБ с 25миллионными строками хранимых числовых журналов и выполняется их расчет, она работает быстро и хорошо.
Ответ 4
У меня есть база данных SQLite объемом 7,5 ГБ, в которой хранится 10,5 миллионов строк. Запрос выполняется быстро, если у вас есть правильные индексы. Чтобы быстро вставлять вставки, вы должны использовать транзакции. Кроме того, я нашел, что лучше создавать индексы после того, как все строки были вставлены. В противном случае скорость вставки будет довольно низкой.
Ответ 5
Ответ, который вы хотите прямо здесь.
Каждая упомянутая вами ОС поддерживает несколько типов файловой системы. Фактические пределы будут для файловой системы, а не для ОС. Трудно суммировать матрицу ограничений на SO, но в то время как некоторые файловые системы ограничивают размеры файлов, все основные ядра ОС сегодня поддерживают файловую систему с чрезвычайно большими файлами.
Максимальный размер страницы sqlite3 db довольно большой, 2 ^ 32768, хотя для этого требуется некоторая конфигурация. Я предполагаю, что индекс должен указывать номер страницы, но результат, вероятно, будет заключаться в том, что сначала будет достигнут предел ОС или среды.
Ответ 6
По существу нет реальных ограничений
см. http://www.sqlite.org/limits.html для деталей
Ответ 7
Без ограничений, но в основном после определенного момента база данных sqlite станет бесполезной. PostgreSQL - это высшая бесплатная база данных BY FAR для огромных баз данных. В моем случае это около 1 миллиона строк на моем 64-разрядном четырехъядерном процессоре с четырьмя процессорами Linux с 8 ГБ оперативной памяти и жесткими дисками Raptor. PostgreSQL непревзойден, даже с помощью настроенной базы данных MySQL. (Опубликовано в 2011 году).