varchar eller text?

Databaser & SQL

7 svar · 539 visningar · startad av henkz

Medlem sedan apr. 2002183 inlägg
Trådstart#1

Vilken typ skall jag använda? varchar eller text till mysql databas? Det kommer att vara allt från ett namns storlek till en hel dikt...
eller skall jag välja någon annan typ än ovanstående?

Medlem sedan feb. 20012 412 inlägg
#2

Hej, ett varchar fält rymmer 8000 ASCII-tecken, och en byte motsvarar ett ASCII-tecken, ska du lagra minde än 8000 så välj varchar. Ska du lagra mer så välj något av nedanstående beroende på storleken du behöver:

TINYTEXT En mycket liten textsträng 2^8-1 bytes
TEXT En liten textsträng 2^16-1 bytes
MEDIUMTEXT En medelstor textsträng 2^24-1 bytes
LONGTEXT En lång textsträng 2^32-1 bytes

Medlem sedan apr. 2002183 inlägg
#3

en följefråga...

hur räknar man ut antal tecken?

"TEXT En liten textsträng 2^16-1 bytes "
vad motsvarar : 2^16-1 bytes ??

Medlem sedan juni 20008 205 inlägg
#4

2^16 betyder två upphöjt till sexton. - 1 betyder att man tar bort ett från resultatet ;)
(2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2)-1

Medlem sedan apr. 2002183 inlägg
#5

tack!

nu förstår jag :)
om jag nu använder "TEXT" som typ, kan jag under drift ändra det till ex "MEDIUMTEXT" utan att radera, förstöra .. datan?

Medlem sedan okt. 2001152 inlägg
#6

henkz: det fungerar för mig iaf, har inte råkat ut för några missöden iaf

Medlem sedan dec. 200012 464 inlägg
#7

Hej, ett varchar fält rymmer 8000 ASCII-tecken

Inte i Mysql i alla fall. Där kan en varcharkolumn innehålla max 255 tecken.

Medlem sedan feb. 20012 412 inlägg
#8

Helt rätt LarsG, tack för rättelsen ;)

Blandade DBMS lite, det är varchar i SQL-server som rymmer 8000 väl?

244 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)
114 ms — ändringar (db)