Cytat(Demoneos @ 17.05.2012, 20:31:51 )

jak będzie przy dużo większych tabelach?
CAST() jest funkcją, która przetwarza dane - każde przetworzenie to dodatkowy czas. Czas wykonania zapytania będzie rósł w postępie arytmetycznym, proporcjonalnie do ilości przetwarzanych danych.
Przetestowałem to zapytanie na tabeli z dwoma milionami rekordów (w drugim i trzecim przypadku bez
CASTa oczywiście), z kolumną "
kolumna" w trzech wariantach typu danych:
VARCHAR(40),
DECIMAL(40,2) i
BIGINT(40). Takie były średnie czasy wykonania (10 prób dla każdego przypadku):
- kolumna jako VARCHAR(40): min. 23,275 sek., max. 25,615 sek.
- kolumna jako DECIMAL(40,2): min. 3,370 sek., max. 3,557 sek.
- kolumna jako BIGINT(40): min. 2,730 sek., max 2,824 sek.
Wnioski są oczywiste

No i testuj sam. Zrób na przykład test jak rodzaj silnika bazy wpływa na szybkość wykonania zapytania - w niektórych przypadkach MyISAM jest szybsze od InnoDB, w innych odwrotnie.