Citat:
Originally posted by SimonP@Oct 17 2007, 14:31
Du har missat vad jag skrev:
"...men kör man Fixed row format blir textfält alltid dubbelt så stora med UTF-8"
Jag har testat med en databas med 400 000 records med 3 fält: varchar(24), binary(16) & int(10)
36 MB med UTF-8, 18 MB med Latin1, index-storleken påverkas dock inte av UTF-8.
|
Okej, jag ger mig på den punkten. Det förbryllar mig ändå att databasen blir dubbelt så stor eftersom uft-8 kräver 3 bytes när den är lagrad som CHAR. Men jag antar att det beror på att du avser hela tabellens storlek (inklusive index).
Vad du i praktiken gör när du sätter "fixed row" är ju att tvinga VARCHAR att bli CHAR eftersom den annars inte kan vara av statisk längd. Frågan är förstås om det verkligen är nödvändigt att ha fast storlek på tabellraderna.
CHAR eller VARCHAR med forced fixed row tar ju alltid upp mer plats än nödvändigt (bortsett från det ovanliga fallet när precis alla strängar är exakt lika långa). Frågan är väl snarare om prestandavinsten av att ha fastlängdssträngar är värda de extra MB som det kostar över huvud taget. Jag använder det sällan eftersom strängarna oftast är av så varierande längd att det skulle kosta otrevligt mycket utrymme i förhållande till prestanda.