Максимальная длина Android Sqlite String?
Относительно этого вопроса:
Как SQLite на Android обрабатывает длинные строки?
В нем говорится, что по умолчанию SQLite хранит 1 миллиард. Это то же самое, что и фактический сайт.
Однако, как утверждает человек, это может быть меньше. Мне было интересно, если это способ проверить/что это за значение?
Спасибо!
Ответы
Ответ 1
Невозможно прочитать ограничения SQLite в Android во время выполнения.
(SQLite имеет функцию для этого в своем C API, но Android не раскрывает это.)
В любом случае, я не знаю ни одного Android-разработчика, который уменьшил любой из ограничений SQLite.
(Как правило, они увеличивают некоторый предел или позволяют использовать некоторые опции, когда им это нужно в своих приложениях или когда они пытаются оптимизировать, но они никогда не потрудились что-то изменить.)
Ответ 2
Максимальная длина строки или BLOB
Максимальное количество байтов в строке или BLOB в SQLite определяется макросом препроцессора SQLITE_MAX_LENGTH. Значение по умолчанию этого макроса составляет 1 миллиард (1 тысяча миллионов или 1 000 000 000). Вы может повысить или уменьшить это значение во время компиляции с использованием командной строки такой вариант:
-DSQLITE_MAX_LENGTH=123456789
Текущая реализация будет поддерживать только длину строки или BLOB до 231-1 или 2147483647. И некоторые встроенные функции, такие как hex(), могут завершиться задолго до этой точки. В чувствительных к безопасности приложений, лучше не пытаться максимальная длина строки и длина блока. На самом деле, вы могли бы максимальная длина строки и длины блока до чего-то большего в диапазоне несколько миллионов, если это возможно.
Во время обработки SQLite INSERT и SELECT полное содержимое каждой строки в базе данных кодируется как один BLOB. Так Параметр SQLITE_MAX_LENGTH также определяет максимальное количество байтов в строке.
От http://www.sqlite.org/limits.html.