Jaki jest najlepszy sposób przechowywania dużej ilości tekstu w tabeli na serwerze SQL?Jaki jest najlepszy sposób przechowywania dużej ilości tekstu w tabeli serwera SQL?
Czy varchar (max) jest niezawodny?
Jaki jest najlepszy sposób przechowywania dużej ilości tekstu w tabeli na serwerze SQL?Jaki jest najlepszy sposób przechowywania dużej ilości tekstu w tabeli serwera SQL?
Czy varchar (max) jest niezawodny?
W SQL 2005 i wyższych, VARCHAR (MAX) jest rzeczywiście preferowaną metodą. Typ TEXT jest nadal dostępny, ale przede wszystkim ze względu na zgodność wsteczną z SQL 2000 i niższymi.
Lubię używać VARCHAR (MAX) (lub faktycznie NVARCHAR), ponieważ działa jak standardowe pole VARCHAR. Od czasu jego wprowadzenia używam go zamiast pól tekstowych, kiedy tylko jest to możliwe.
W BLOB
Plamy są bardzo duże lub postaci binarne dane zmienne, zwykle dokumenty (.txt, .doc) oraz zdjęć (jpeg, gif, bmp), które mogą być przechowywane w bazie danych . W SQL Server, BLOB może być tekst, ntext lub typ danych obrazu, można użyć typu tekstowego
tekstowych
o zmiennej długości danych non-Unicode, zapisane w kodzie strony serwera, z maksymalna długość 231 - 1 znaków (2 147 483 647).
Zgodnie z tekstem znalezionym here, varbinary (max) to do zrobienia. Będziesz mógł przechowywać około 2 GB danych.
Varchar (max) jest dostępny tylko w SQL 2005 lub nowszym. To będzie przechowywać do 2 GB i może być traktowane jako zwykły varchar. Przed SQL 2005 użyj typu "tekst".
Podziel tekst na fragmenty, które może obsłużyć twoja baza danych. I umieść podzielony tekst na inną tabelę. Użyj tabeli id
z tabeli text_chunk
jako text_chunk_id
w oryginalnej tabeli. Możesz potrzebować innej kolumny w tabeli, aby zachować tekst pasujący do największego typu danych tekstowych.
CREATE TABLE text_chunk (
id NUMBER,
chunk_sequence NUMBER,
text BIGTEXT)
Wydaje się to bardzo duże; jakiś kontekst dotyczący tego, kiedy ta technika jest wymagana lub właściwa w porównaniu z nvarchar, a jakie koszty/korzyści poprawiłyby jakość tego rozwiązania. – SAJ14SAJ
Zastosowanie nvarchar(max)
przechowywać cały wątek czat w jednym rekordzie. Każda pojedyncza wiadomość tekstowa (lub blok) jest identyfikowana w tekście treści poprzez wstawianie znaczników.
Przykład:
{{UserId: Date and time}}<Chat Text>.
Na wyświetlaczu czas UI powinny być wystarczająco inteligentny, aby zrozumieć ten markery i wyświetlać je poprawnie. W ten sposób jeden rekord powinien wystarczyć do pojedynczej rozmowy, o ile nie zostanie osiągnięty limit rozmiaru.
Bardzo dobry punkt o NVARCHAR; moje złe - powinienem był o tym wspomnieć. –