Kolik zabiraji nevyplnena pole (int, text) v tabulce mista (jsou zanedbatelna?), tj. zda udelat 1 tab dlouhou nebo nekolik mensich tab celkove mene prehlednych?
Nevylpnena pole nic neberou. Co se mista tyce, velka tabulka je efektivnejsi.
>Nevylpnena pole nic neberou.
Jake jsou rozdily (vyhody) mezi napr. char, varchar vuci napr. text, pokud by to zalezelo na delce skutecne vyplnene a zalezi to na delce skutecne vyplnene?
precti si manual,
pokud zalozis sloupe char(2) tak si sql rezervuje 2misto pro char, pokud ale misto toho das varchar(2) tak si nic nerezervuje a pokud tam potom neco doplnis dodatecne tak se to proste tam prida. Proto je lepsi pouzivat varchar pred char.
co se tice int musis najit v manualu.
Sojkovec > int bere podle rozsahu ne? jsou různé inty - int(xx) neboli smallint, tinyint, mediumint ....
nemůžou přece všechny zabírat stejně
Sacred Empire > všude se dočteš, že s char se pracuje rychleji než s varchar, takže s tím co je lepší to není tak jednoznačné
Taktak int si zabere podle typu. To je ale dobře vidět i v MySQLadminu.
Jinak varchar je efektivnější na prostor, ale méně efektivní na zpracování (což se ale, podle mě, na 5MB vůbec neprojeví).
Char(x) skutečně zabe x byte (pokud je char byte - pokud je nastavena znaková stránka na utf-8, tak 2x tolik).
Pokud je cokoli null, tak, podle mě, zabere nějaký minimální prostor (značka, že to je null.
varchar(x) pokud je prázdný, tak zabere minimálně tu značku null, jinak obsah plus informace o délce.
Text je speciální struktura, ale v podstatě odpovídá varcharu. Není to úplně to stejné, ale to bych tu nerozebíral.
O tom jestli udělat jednu tabulku nebo více "méně přehledných" jsou napsané celé knihy. Tuším že se jedná o normalizaci db. Je toho několik forem (tuším 5), z čehož se běžně používají 3. Takže je dobré si o tom něco i přečíst, není to až tak blbý nápad.