Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwenden von varchar(MAX) vs. TEXT auf SQL Server

Der VARCHAR(MAX) type ist ein Ersatz für TEXT . Der grundlegende Unterschied besteht darin, dass ein TEXT type speichert die Daten immer in einem Blob, während VARCHAR(MAX) type versucht, die Daten direkt in der Zeile zu speichern, es sei denn, sie überschreiten die 8-KB-Beschränkung, und speichert sie an diesem Punkt in einem Blob.

Die Verwendung der LIKE-Anweisung ist zwischen den beiden Datentypen identisch. Die zusätzliche Funktionalität VARCHAR(MAX) gibt Ihnen, dass es auch mit = verwendet werden kann und GROUP BY wie jeder andere VARCHAR Spalte sein kann. Wenn Sie jedoch viele Daten haben, werden Sie mit diesen Methoden ein enormes Leistungsproblem haben.

In Bezug darauf, ob Sie LIKE verwenden sollten zu suchen, oder ob Sie die Volltextindizierung verwenden sollten und CONTAINS . Diese Frage ist unabhängig von VARCHAR(MAX) gleich oder TEXT .

Wenn Sie große Textmengen durchsuchen und die Leistung entscheidend ist, sollten Sie einen Volltextindex verwenden .

LIKE ist einfacher zu implementieren und eignet sich häufig für kleine Datenmengen, hat jedoch eine extrem schlechte Leistung bei großen Datenmengen, da kein Index verwendet werden kann.