Форум сайта python.su
Доброго времени суток!
Я использую SQLite, но там есть ограничение размера файла(вроде 2гига).
Вопрос в следующем - как решить вопрос если БД превысила лимит размера?
Буду рад ссылкам и ответам.
Спасибо!
Офлайн
Максимальный размер БД зависит от параметров page_size и max_page_count, которые можно менять с помощью команды PRAGMA.
По-умолчанию page_size = 1024, а max_page_count = 2**30 - 1. Таким образом максимальный размер БД будет около 1 ТБ.
Можно увеличить их до 2**15 и 2**31 - 1, соответственно. Тогда максимальный размер БД будет около 64 ТБ.
Офлайн
Я не сталкивался с таким ограничением. Возможно это проблемы конкретной сборки (для винды?!) или файловой системы. В Linux (Debian/Ubuntu) на ext2/3 база у меня такая “из коробки” размером 6 гигов работает.
..bw
Офлайн
Это наверняка ограничение ОС.
Если такое происходит, то, согласно документации: An attempt to insert new data that would cause the database file to grow larger than this will return SQLITE_FULL.
Отредактировано (Апрель 26, 2010 18:55:11)
Офлайн
Я думаю, что правильным ответом тут будет направить на использование нормальных систем управления базами данных. ИМХО, sqlite не для таких объёмов.
Офлайн
Ну если хочется использовать именно sqlite3, то можно немного схитрить и разбить базу данных на несколько файлов. Подходит в том случае, когда известно по каким критерием разбивать.
В одной своей софтинке, которая генерирует ежедневно достаточно большое количество данных, разбиваю базу данных по файлам, типа: 2010-01.db, 2010-02.db (каждая около 500-600 мб.). Выборку из базы в основном делаю по датам, поэтому легко понять к какой базе данных нужно делать connect и запросы, которые кстати выполняются быстрее, чем если бы мы искали по одной большой базе данных.
Офлайн
igor.kaist спасибо за подсказку! Прога будет стоять на клиенте и поэтому мне нет смысля ставить СУБД.
Офлайн
helm2004Посмотри на Firebird – умеет работать без сервера, быстра, удобна и вообще хороша.
Прога будет стоять на клиенте и поэтому мне нет смысля ставить СУБД.
Офлайн
ZZZСсылку плиз ;)
ИМХО, sqlite не для таких объёмов.
Офлайн
Lexander, это чисто моё ощущение, основанное на моём опыте, но не претендующее на достоверность. Вот.
Офлайн