webForumDet fria alternativet

varchar eller text?

Databaser & SQL

7 svar · 514 visningar · startad av henkz

Medlem sedan apr. 2002183 inlägg
Frågan#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?

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)