2009-10-10 4 views
21

Дайте простую таблицу sqlite3 (create table data (key PRIMARY KEY,value)) с размером ключа 256 байт и значением размером 4096 байт, каков предел (игнорирующий ограничения на диске) на максимальное количество строк в этом Таблица sqlite3? Являются ли их пределы, связанные с ОС (win32, Linux или Mac)Максимальное количество строк в таблице sqlite

ответ

2

По существу нет никаких реальных ограничений

см http://www.sqlite.org/limits.html подробности

+2

Практические ограничения для строк [были обновлены] (http://stackoverflow.com/a/9456705/462302), чтобы быть более четкими. Даже когда они не были четко определены, всегда существовали реальные ограничения, хотя «SQLite изначально был разработан с политикой избежания произвольных ограничений ... К сожалению, политика без ограничений, как было показано, создает проблемы. Поскольку верхние границы не были четко определены, они не были протестированы, а ошибки (включая возможные угрозы безопасности) часто обнаруживались при нажатии на SQLite до крайности ». – aculich

4

Ответ вы хотите is right here.

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

Максимальный размер страницы sqlite3 db довольно большой, 2^32768, хотя для этого требуется некоторая конфигурация. Я предполагаю, что индекс должен указывать номер страницы, но, скорее всего, результат будет равен предельному уровню ОС или среды.

0

Нет ограничений, но в основном после того, как какой-то момент база данных SQLite станет бесполезным. PostgreSQL - это высшая бесплатная база данных BY FAR для огромных баз данных. В моем случае это около 1 миллиона строк на моем 64-разрядном четырехъядерном процессоре с четырьмя процессорами Linux с 8 ГБ оперативной памяти и жесткими дисками Raptor. PostgreSQL непревзойден, даже с помощью настроенной базы данных MySQL. (Опубликовано в 2011 году).

+8

1 Миллион строк - это * не * hugh table, большой, может быть, но не огромный. – Ryaner

22

По состоянию на январь 2017 г. sqlite3 limits page определяет практические пределы на этот вопрос на основании максимального размера базы данных, которая составляет 140 терабайт:

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

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

Так с максимальным размером базы данных 140 терабайта вы бы повезло получить ~ 1 триллион строк, так как если вы на самом деле были полезной таблица с данными в ней количество строк будет стесненными от размера данные. Вероятно, у вас может быть до 10 с миллиардов строк в базе данных 140 ТБ.

+1

Просто читал документацию ... 1.4e + 14 байт (140 терабайт), но ограничение по реальному размеру - это ограничения размера файла операционной системы операционной системы, что намного ниже. – BonanzaDriver

+1

@aculich. Это теоретический ответ, который практически не используется ** на практике **. Для практического ответа практические программисты, пишущие практические приложения, практически хотели бы знать на практике, пожалуйста, прочитайте http://stackoverflow.com/q/784173/632951 – Pacerier

9

У меня есть база данных SQLite 3,3 ГБ в размере с 25миллионными рядами хранимых числовых журналов и выполняется на них расчет, она работает быстро и хорошо.

5

У меня есть база данных SQLite 7.5 ГБ, в которой хранится 10,5 миллионов строк. Запрос выполняется быстро, если у вас есть правильные индексы. Чтобы быстро вставлять вставки, вы должны использовать транзакции. Кроме того, я нашел, что лучше создавать индексы после все строки были вставлены. В противном случае скорость вставки довольно медленная.

Смежные вопросы