Я читал их лимиты FAQ, они говорят о многих ограничениях, кроме предела всей базы данных.
Существует ли ограничение на размер базы данных SQLite?
Ответ 1
Это довольно легко вывести из пределы реализации:
Файл базы данных SQLite организован как страницы. Размер каждой страницы равен 2 между 512 и SQLITE_MAX_PAGE_SIZE. Значение по умолчанию для SQLITE_MAX_PAGE_SIZE равно 32768.
...
Параметр SQLITE_MAX_PAGE_COUNT, который обычно установлен в 1073741823, - это максимальное количество страниц, разрешенных в одном файле базы данных. Попытка вставить новые данные, которые приведут к увеличению размера файла базы данных, приведет к возврату SQLITE_FULL.
Итак, у нас есть 32768 * 1073741823, что составляет 35 184 372 056 064 (35 триллионов байтов)!
Вы можете изменить SQLITE_MAX_PAGE_COUNT
или SQLITE_MAX_PAGE_SIZE
в источнике, но для этого, конечно, потребуется специальная сборка SQLite для вашего приложения. Насколько мне известно, нет никакого способа установить лимит программно иначе, чем во время компиляции (но я был бы счастлив, если бы ошибался).
Ответ 2
Он имеет новые ограничения, теперь ограничение размера базы данных составляет 128 ТБ:
Каждая база данных состоит из одной или нескольких "страниц". В одной базе данных каждая страница имеет одинаковый размер, но у разных баз данных могут быть размеры страниц, равные двум от 512 до 65536 включительно. Максимальный размер файла базы данных - 2147483646 страниц. При максимальном размере страницы 65536 байт это означает максимальный размер базы данных примерно 1.4e + 14 байт (140 терабайт или 128 tebibytes, или 140 000 гигабайт или 128 000 gibibytes).
Эта особая верхняя граница не тестируется, поскольку разработчики не имеют доступа к аппаратным средствам, способным достичь этого предела. Тем не менее, тесты подтверждают, что SQLite ведет себя корректно и безопасно, когда база данных достигает максимального размера файловой системы (которая обычно намного меньше максимального теоретического размера базы данных) и когда база данных не может расти из-за исчерпания дискового пространства.
Ответ 3
Максимальное количество байтов в строке или BLOB в SQLite определяется макросом препроцессора SQLITE_MAX_LENGTH. Значение по умолчанию этого макроса составляет 1 миллиард (1 тысяча миллионов или 1 000 000 000).
Текущая реализация будет поддерживать только строку или длину BLOB до 231-1 или 2147483647
Значение по умолчанию для SQLITE_MAX_COLUMN равно 2000. Вы можете изменить его во время компиляции до значений 32767. С другой стороны, многие опытные разработчики баз данных будут утверждать, что для хорошо нормированной базы данных никогда не потребуется более 100 столбцов в таблицу.
SQLite не поддерживает объединения, содержащие более 64 таблиц.
Теоретическое максимальное количество строк в таблице составляет 264 (18446744073709551616 или около 1,8e + 19). Этот предел недостижим, так как максимальный размер базы данных составляет 140 терабайт.
Максимальный размер БД: 140 терабайт
Пожалуйста, проверьте URL для получения дополнительной информации: https://www.sqlite.org/limits.html
Ответ 4
Хотя это старый вопрос, но позвольте мне поделиться своими выводами для людей, которые достигают этого вопроса.
Хотя в документации Sqlite указано, что максимальный размер файла базы данных составляет ~ 140 терабайт, но ваша ОС накладывает собственные ограничения на максимальный размер файла для любого типа файла.
Например, если вы используете диск FAT32 в Windows, максимальный размер файла, который я мог бы достигнуть для sqlite, был 2 ГБ. (Согласно сайту Microsoft, ограничение на систему FAT 32 4 ГБ, но мой размер sqlite db был ограничен 2 ГБ). В то время как в Linux я смог достичь 3 ГБ (где я остановился, он мог бы достигнуть большего размера)