![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 4 Dołączył: 3.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
No wlasnie. Tak jak w temacie. Jest sobie funkcja php md5(), ktora zwraca zawsze (o ile nie poda sie drugiego opcjonalnego parametru) lancuch 32-znakowy. W wielu miejscach w Internecie przeczytalem ze zalecane jest zachowywac wyniku tej funkcji w bazie z polu typu CHAR(32) zamiast VARCHAR(32). Ale nie znalazlem wytlumaczenia takiego postepowania. I dlatego zadaje to pytanie.
Dlaczego wlasnie typ CHAR(32) mialby byc lepszy niz VARCHAR(32)? skoro: po pierwsze - zarowno jeden jak i drugi mozna ograniczyc z gory; do drugie - funkcja md5 ZAWSZE zwraca lancuch o stalej dlugosci. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
char stosujesz wtedy, gdy pole zawsze bedzie mialo string o tej samej dlugosci. dla md5() tak wlasnie bedzie.
char jest szybsze od varchar. jest jednak pewien haczyk: jesli w tabeli zdefiniujesz jeszcze jakiekolwiek pole typu VARCHAR, to CHAR juz ci sie na nic nie zda, bo mysql automatycznie skonweruje je na VARCHAR (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 00:47 |