sql >> Database teknologi >  >> RDS >> Mysql

Varchar eller tekstdatatyper for strenge længder op til nogle få tusinde tegn

Der er forskellige steder, hvor VARCHAR og TEXT gøre eller ikke adskille sig. Nogle ting siger jeg:

  • Hvis den maksimale længde er mere end 512 tegn , gå med TEXT .
  • Brug aldrig TINYTEXT -- den har kun negativer i forhold til VARCHAR(255) .
  • Brug ikke VARCHAR(255); vælg et rimeligt maks. i stedet for 255. (Dette er en mindre optimering i forbindelse med midlertidig tabel i komplekse forespørgsler.)
  • Brug CHAR kun for ting, der er virkelig fast længde. I næsten alle sådanne tilfælde skal du slå på CHARACTER SET ascii (eller latin1). (Ellers vil det tage mere plads, end du forventer.
  • Brug CHARACTER SET ut8mb4 . (Undtagelser bliver mere og mere sjældne.)

(Beklager, jeg afviger. Tilbage til emnet...)

I-indeksering, i layout af InnoDB-rækker (der er 4 forskellige ROW_FORMATs ), osv., VARCHAR(513) vil stort set ikke kunne skelnes fra TEXT .

Et af de få argumenter for VARCHAR er, at det begrænser butikken til den opgivne længde. Men hvor ofte er det vigtigt?



  1. MySql - Sådan forbinder du to tabeller, men med ikke nøjagtige værdier, men lignende

  2. Workplace Encounters:Genvinde plads fra en overdimensioneret database

  3. Opdel værdier over flere rækker

  4. Hvordan opdaterer man en webside uden at genindlæse websiden ved hjælp af AJAX?