Mysql
 sql >> Baza danych >  >> RDS >> Mysql

czy dobrze jest przechowywać wartość dziesiętną jako varchar w mysql?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. uruchom plik *.sql za pomocą Pythona MySQLdb

  2. Do czego służy deklaracja gniazda w bazie danych Ruby on Rails.yml?

  3. Odzyskaj unikalne wartości i liczby dla każdego

  4. Jak działa funkcja LOAD_FILE() w MySQL

  5. Używanie JDeveloper z bazą danych MySQL i bazą danych Oracle na AWS RDS, część 2