Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 495 Pomógł: 2 Dołączył: 5.02.2006 Skąd: Wrocław Ostrzeżenie: (0%)
|
Czy długość nazwy pola (kolumny tabeli) w bazie danych ma znaczący wpływ na wydajność połączeń z bazą danych?
Pytam, bo chciałbym używać zamiast d_pref_dzial_on np. dzial_ustawienia_dzial_wlaczony Mowa tu o ciągach długości maksymalnie 40-50 znaków. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 495 Pomógł: 2 Dołączył: 5.02.2006 Skąd: Wrocław Ostrzeżenie: (0%)
|
Tabela nie nazywa się działy tylko elementy, a jednym z elementów jest dział. To, że wiele pól rozpoczynać się będzie od prefiksu dzial_ nie oznacza, że baza jest źle zaprojektowana. Oznacza jedynie tyle, że w jednej tabeli możesz mieć kilka typów danych i chcieć je wzajemnie sortować.
Załóżmy, że masz tabelę części, a w niej kilka typów danych silnik, koło, kierownica. Mają one pewne wspólne cechy jak waga nazwa, data dodania itp. Mają jednakże również zupełnie różne względem siebie właściwości i tak masz kolumny typ danych (silnik, koło, kierownica) nazwa waga data dodania data ostatniej modyfikacji silnik_moc silnik_pojemnosc kolo_srednica kolo_felga kierownica_kolor kierownica_material kierownica_wspomaganie Umieszczasz to w jednej tabeli, ponieważ to tak naprawdę pozwala najszybciej sortować dane. Można to podzielić na kilka tabel, ale aby sortować lub filtrować te dane trzeba by korzystać z JOINÓW, a o ile mi wiadomo JOIN powoduje, że każdy pobierany rekord z tabeli A powoduje przeszukanie całej tabeli B (do moment u natrafienia na rekord zbieżny). Nie muszę tworzyć zbiorczej tabeli tymczasowo zbierającej te dane, bo wszystko już jest w jednej wspólnej tabeli. To zwiększa możliwości. Robisz sobie filtry: pokaż tylko koła, pokaż tylko kierownice, pokaż tylko silniki, albo pokaż wszystkie części, ale koła ogranicz do takich o określonej średnicy itp. Powyższe zakłada, że tych elemenów będzie NIE WIĘCEJ niż 3. Nie są to produkty sklepu, przykład części nie jest tu zbyt dobry, ale załóżmy, że części są TYLKO I NIE WIĘCEJ ORAZ WYŁĄCZNIE NIE MNIEJ NIE WIĘCEJ JAK WŁAŚNIE TRZY :- ). JOINY przecież marnują czas pracy, zbędnie x razy przeszukują wiele tabel. To jakby próbowac rozdzielić imię i nazwisko użytkownika na dwie tabele tylko dlatego, że jedno jest imieniem, a drugie nazwiskiem i nie są tym samym. Nie chcę używać angielskich nazw kolumn tak samo jak nie używam angielskich nazw zmiennych itp. Ktoś powiedział, że anglojęzyczne nazwy zmiennych i kolumn są ok i Ty się tym zasugerowałeś, natomiast sposób nazewnictwa zmiennych nie ma kompletnie żadnego wpływu na jakość, wydajność i elastyczność kodu. Ważniejsze jest dla mnie to czy jak użyję 50 znaków zamiast 15 w nazwie kolumny tabeli zauważę znaczy spadek wydajności zapytań przy powiedzmy kilku tysiącach rekordów. Oczywiście wyprzeć się możesz stwierdzeniem, że to ułatwi czytanie kodu innym niekoniecznie polskim programistom, ale tego typu sytuacje z reguły nie zdarzają jeśli nie programujesz jako pracownik. Będąc pracownikiem podlegasz regułom, a bo to wspólnik anglik, a bo inny koder anglik, a bo to manager nie z polski. Pracując na własne konto samodzielnie definiujesz reguły. Ten post edytował The Night Shadow 11.04.2009, 20:30:07 |
|
|
|
The Night Shadow [MYSQL] Nazwa pola i jej wpływ na wydajność 11.04.2009, 19:45:25
erix No wiesz, niby to zawsze więcej do transmisji. Ale... 11.04.2009, 19:50:33
erix CytatTabela nie nazywa się działy tylko elementy, ... 11.04.2009, 20:32:47
The Night Shadow CytatTo było tylko przykładowo. W każdym razie - m... 11.04.2009, 21:18:11
erix Ale jeśli kiedyś przyjdzie Ci rozwijać aplikację, ... 14.04.2009, 16:26:08 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 03:46 |