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