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

Hvilken DATATYPE er bedre at bruge TEXT eller VARCHAR?

Det afhænger af, hvad du bruger det til. Jeg hader at give sådan et generisk svar, men det er sandt. Prøv generelt at få datatypen så specifik som du kan. Hvis dine strenge aldrig vil overskride en øvre grænse for tegn, så gå med VARCHAR fordi det vil være lidt mere effektivt. Hvis du har brug for mere plads, skal du bruge TEXT . Hvis du ikke er sikker på, hvor meget plads din tekst vil optage, bør du sandsynligvis vælge TEXT; ydelsesforskellen er ikke særlig stor, og det er bedre at være fremtidssikret end at risikere at skulle ændre den senere, når dine krav ændrer sig. Bare mine to øre.

I kommentarerne påpeger Pitarou, at hvis MySQL opretter en midlertidig tabel til din forespørgsel (se dette ), TEXT kolonner vil ikke blive gemt i hukommelsen og skal læses fra disken, hvilket er meget langsommere. (Kilde , nederst på siden.) Dette burde dog ikke betyde noget for de fleste forespørgsler.

Hvis nogen undrede sig over, hvordan PostgreSQL kan sammenlignes, fandt jeg dette benchmark der viser, at CHAR, VARCHAR og TEXT alle klarer sig lige godt. Så hvis du bruger Postgres, er det lige meget, hvilken type du bruger.



  1. Hvordan gemmer man et 128 bit nummer i en enkelt kolonne i MySQL?

  2. EXISTS vs JOIN og brug af EXISTS-klausulen

  3. Microsoft annoncerer SQL Server 2012 R2 og SQL Server 2012 R3!

  4. SQLite Query i Android ved hjælp af markøren