Krótka odpowiedź brzmi:nie, to pogorszy wydajność.
Dłuższa odpowiedź:pola VARCHAR mają zmienną długość, co oznacza, że formatowanie bloków bazy danych nie może z góry uwzględniać wielkości wypełnianych tam danych. Jasne, istnieje maksymalna długość pola, ale poza tym wypada ci gorzej.
Z drugiej strony, odczytanie VARCHAR, a następnie zinterpretowanie go w celu dopasowania do typu zmiennoprzecinkowego będzie Cię kosztować. I wprowadza nowe możliwości problemowe. Spróbuj uzyskać wszystkie ułamki dziesiętne, które odpowiadają „11,99”. Mam nadzieję, że wprowadzisz odpowiednią liczbę miejsc po przecinku, ponieważ w VARCHAR "11.99" !="11.990".
A potem jest indeksowanie. Zwykle nikt nie indeksował pola dziesiętnego, ale jeśli to zrobisz, indeks pola VARCHAR będzie wymagał więcej miejsca.
W sumie nie jest dobrym pomysłem zapisywanie czegoś w nieokreślonym typie pola. W strukturze DB zwykle uważa się, że najlepszą praktyką jest jak najdokładniejsza.