To więcej przyzwyczajenia niż cokolwiek innego. Nie ma nic magicznego w varchar (32) lub varchar (64), podobnie nie ma nic magicznego w domyślnych narzędziach wizualnych, które próbują cię użyć zamiast tego (np. Varchar (50)). Wiele z tych górnych granic zostało wmanipulowanych ludziom w głowy, ponieważ 640 tys. To wystarczająca pamięć dla każdego i naprawdę musieliśmy się martwić każdym pojedynczym bajtem.
W wielu przypadkach sprowadza się do wspólnej podstawy. W poprzednim systemie, w którym pracowałem, menedżerowie produktu nie mieli pojęcia, jakie są ich wymagania. Chcieli zapisać nazwę, ale nie wiedzieli, na czym naprawdę polegała domena nazwisk - ale jeden z nich stwierdził, że słyszeli o nazwisku> 50 znaków, więc wiedział, że musi to być więcej niż 32 i więcej niż 50. Wróciliśmy z 64, zgodził się, że to wystarczy, i to jest to, co jest tam dzisiaj AFAIK.
Choć nie mieliśmy powodów technicznych e-mail (varchar (320)), który w tym czasie średnia podyktowane jako 320 znaków, bo 64 znaków dla nazwy użytkownika/LocalPart, 255 znaków na nazwę domeny, a 1 znaków dla @. Większość innych decyzji była oparta na pierwszeństwie (np. Wszystkie kolejne nazwy były zgodne z modelem nvarchar (64), jak postanowiono powyżej), lub logika (np. Adresy URL nie muszą być nvarchar (max), ale w zależności od standardu i możliwości przeglądarki w czas, oni byli ja wierzę albo varchar (2048) albo varchar (4096) .W tym przypadku nie dlatego, że był potęgą 2, ale ponieważ czyjeś oprogramowanie lub standardy zbudowały swoje rzeczy, aby użyć mocy 2.
Ouch. Mam siwe włosy, ale nie jestem taki stary (38). :-) –
Hmm, choć w dużych tabelach, gdzie trzeba wykonywać połączenia SELECT wymagające dużej liczby operacji wejścia/wyjścia, zapisanie kilku bajtów rozmiaru wiersza * może * wprowadzić różnicę. (Ale masz absolutną rację co do długości VARCHAR :) – osman
@osman yes - im więcej wpisów w wierszach i/lub indeksach, które można zmieścić na 1 stronie dysku, tym lepsza wydajność. – Bohemian