SQL Dobre praktyki przy pisaniu zapytań sql cz.2.

Z uwagi na to, że artykuł „SQL Dobre praktyki przy pisaniu zapytań sql.” cieszy się dużą popularnością pozwoliłem sobie dopisać część nr 2 🙂

No to zaczynamy!

1. Zawsze prezentuj to co niezbędne i tylko to.

Początkujący programiści mają taką „przypadłość”, że często zostawiają znak ” * ” w części SELECT. Przeważnie nasze zapytanie nie musi zwracać wszystkich kolumn z wszystkich tabel które występują w zapytaniu. Ogranicz więc ilość zwracanych kolumn w części SELECT do niezbędnego minimum. Na pewno będzie to miało pozytywny wpływ na szybkość wykonywania się zapytania. To samo tyczy się podzapytań w środku zapytania głównego.

2. Poprawnie dobieraj typy danych do poszczególnych kolumn.

Ta porada dotyczy bardzie tworzenia struktury danych ale postanowiłem także o niej wspomnieć.

Jeśli nie ma potrzeby stosowania „większego” typu danych to stosuj jak „najmniejszy” typ danych. Pamiętaj że różne typy to różna ilość bajtów na dane a co za tym inna wielkość potrzebna na przechowywanie Twoich danych na dysku. Np. po co stosować typ bigint do kolumny id w tabelach słownikowych skoro „zwykły” int w zupełności wystarczy. Po co przechowywać samą datę w typie datetime skoro chcemy przechowywć tylko i wyłącznie datę bez czasu. Pamiętaj datetime to 8 bajtów a date tylko 3. itd.

3. Przy porównaniach zadbaj o zgodność typów.

Na początek dam przykład:

WHERE timestampdate BETWEEN '2000-01-01′ AND '2000-12-31′ — gdzie timestampdate jest typu timestamp.

W przykładzie powyżej timestampdate jest typu timestamp a daty w BETWEEN-ie typu date. Generalnie zapytanie zadziała ale kompilator będzie musiał konwertować w locie jeden typ na drugi a to już jest czas 🙂