Каков максимальный размер типа данных varchar в sqlite?

Я новичок в sqlite. Я хочу знать максимальный размер типа данных varchar в sqlite?

Кто-нибудь может предложить мне некоторую информацию по этому поводу? Я искал на сайте sqlite.org, и они дали ответ как:

Q. Каков максимальный размер VARCHAR в SQLite?

A. SQLite не требует длины VARCHAR. Вы можете объявить VARCHAR (10), и SQLite с радостью позволит вам поместить в него 500 символов. И он сохранит все 500 символов без изменений - он никогда не усекает.

но я хочу знать точный максимальный размер типа данных varchar в sqlite.


person Priyanka    schedule 24.05.2011    source источник
comment
Вы также можете прочитать этот sqlite.org/limits.html   -  person taro    schedule 24.05.2011


Ответы (1)


из http://www.sqlite.org/limits.html

Максимальная длина строки или большого двоичного объекта

Максимальное количество байтов в строке или BLOB в SQLite определяется макросом препроцессора SQLITE_MAX_LENGTH. Значение этого макроса по умолчанию - 1 миллиард (1 тысяча миллионов или 1 000 000 000). Вы можете повысить или понизить это значение во время компиляции, используя такую ​​опцию командной строки:

-DSQLITE_MAX_LENGTH = 123456789 Текущая реализация будет поддерживать только строку или большой двоичный объект длиной до 231-1 или 2147483647. И некоторые встроенные функции, такие как hex (), могут выйти из строя задолго до этого момента. В приложениях, чувствительных к безопасности, лучше не пытаться увеличивать максимальную длину строки и большого двоичного объекта. Фактически, вы могли бы поступить правильно, снизив максимальную длину строки и blob до чего-то большего в диапазоне нескольких миллионов, если это возможно.

Во время части обработки SQLite INSERT и SELECT полное содержимое каждой строки в базе данных кодируется как один BLOB. Таким образом, параметр SQLITE_MAX_LENGTH также определяет максимальное количество байтов в строке.

person Felipe Sabino    schedule 02.06.2011
comment
Для справки: при использовании 1-байтовых символов это немного меньше ГБ. (Или ровно один ГБ, если вы измеряете биты по базе 10) - person Tim Swast; 08.08.2012
comment
Сколько символов может быть сохранено в 1 байте в SQLite? - person renatov; 08.04.2015
comment
@renatov Я не думаю, что вы можете измерять в символах, это зависит от кодировки, которую вы используете для базы данных sqlite .org / datatype3.html и вводимый символ. Например, UTF-8 может иметь от 1 до 4 байтов на символ, независимо от того, использует ли ASCII только 1 stackoverflow.com/questions/5290182/ - person Felipe Sabino; 09.04.2015
comment
@renatov О, просто чтобы прояснить, что я сказал ASCII в качестве примера, поскольку кажется, что он не поддерживается sqlite sqlite.org/datatype3.html - person Felipe Sabino; 09.04.2015
comment
@renatov, вот очень хорошее видео, показывающее, как работают utf-8 и строковое кодирование :) youtube.com / watch? v = MijmeoH9LT4 - person Felipe Sabino; 09.04.2015