sql >> Database >  >> RDS >> Sqlserver

Varchar(MAX) versus TEXT gebruiken op SQL Server

De VARCHAR(MAX) type is een vervanging voor TEXT . Het fundamentele verschil is dat een TEXT type slaat de gegevens altijd op in een blob, terwijl de VARCHAR(MAX) type zal proberen de gegevens rechtstreeks in de rij op te slaan, tenzij het de 8k-limiet overschrijdt en op dat moment slaat het deze op in een blob.

Het gebruik van de LIKE-instructie is identiek tussen de twee gegevenstypen. De extra functionaliteit VARCHAR(MAX) geeft is dat het ook kan worden gebruikt met = en GROUP BY zoals elke andere VARCHAR kolom kan zijn. Als je echter veel gegevens hebt, heb je een enorm prestatieprobleem bij het gebruik van deze methoden.

Met betrekking tot het gebruik van LIKE om te zoeken, of als u Full Text Indexing moet gebruiken en CONTAINS . Deze vraag is hetzelfde ongeacht VARCHAR(MAX) of TEXT .

Als u grote hoeveelheden tekst zoekt en prestaties essentieel zijn, moet u een Full Text Index gebruiken .

LIKE is eenvoudiger te implementeren en is vaak geschikt voor kleine hoeveelheden gegevens, maar presteert extreem slecht met grote gegevens vanwege het onvermogen om een ​​index te gebruiken.



  1. Zoek tekst in opgeslagen procedure in SQL Server

  2. SQLite-gegevens weergeven in RecyclerView

  3. Waarom kost het doorlopen van een grote Django-queryset enorme hoeveelheden geheugen?

  4. Hoe het aantal dagen verschil tussen twee datums op MySQL te krijgen?