Каков наилучший способ хранения большого количества текста в таблице на SQL-сервере?
Является ли varchar (max) надежным?
Каков наилучший способ хранения большого количества текста в таблице на SQL-сервере?
Является ли varchar (max) надежным?
В SQL 2005 и выше VARCHAR (MAX) действительно является предпочтительным методом. Тип TEXT по-прежнему доступен, но прежде всего для обратной совместимости с SQL 2000 и ниже.
Мне нравится использовать VARCHAR (MAX) (или фактически NVARCHAR), потому что он работает как стандартное поле VARCHAR. Поскольку это введение, я использую его, а не поля TEXT, когда это возможно.
В BLOB
BLOB - это очень большие переменные двоичные или символьные данные, обычно документы (.txt,.doc) и изображения (.jpeg,.gif,.bmp), которые могут храниться в базе данных. В SQL Server BLOB могут быть текстовыми, ntext или типами данных изображения, вы можете использовать тип текста
текст
Неравномерные данные с переменной длиной, хранящиеся на кодовой странице сервера, с максимальной длиной 231 - 1 (2 147 483 647) символов.
В соответствии с текстом, найденным здесь, varbinary (max) - это путь. Вы сможете хранить приблизительно 2 ГБ данных.
Varchar (max) доступен только в SQL 2005 или более поздней версии. Это будет хранить до 2 ГБ и может рассматриваться как обычный varchar. Перед SQL 2005 используйте тип "текст".
Разделите текст на куски, которые может обрабатывать ваша база данных. И добавьте разделительный текст в другую таблицу. Используйте таблицу id
в таблице text_chunk
как text_chunk_id
в исходной таблице. Возможно, вам понадобится еще один столбец в вашей таблице, чтобы сохранить текст, соответствующий вашему самому большому типу текстовых данных.
CREATE TABLE text_chunk (
id NUMBER,
chunk_sequence NUMBER,
text BIGTEXT)
Используйте nvarchar(max)
для хранения цельного потока чата в одной записи. Каждое отдельное текстовое сообщение (или блок) идентифицируется в тексте содержимого путем вставки маркеров.
Пример:
{{UserId: Date and time}}<Chat Text>.
В режиме отображения времени пользовательский интерфейс должен быть достаточно интеллектуальным, чтобы понимать эти маркеры и отображать его правильно. Таким образом, одна запись должна быть достаточной для единственного разговора, если ограничение по размеру не достигнуто.