Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] optymalna struktura bazy
Forum PHP.pl > Forum > Przedszkole
!*!
Tak się zastanawiam jak optymalnie rozwiązać taki motyw:

Posiadam jedną bazę mysql i ok 1250 przedsiębiorstw w bazie. Mam możliwość przebudowy tego i chciałbym to jakoś zoptymalizować na zasadzie:

Baza > W niej tabele, gdzie każda tabela to nazwa przedsiębiorstwa > W tych tabelach odpowiednie wpisy danych o przedsiębiorstwie + dodawane kolejno jakieś inne informacje ok 600 wpisów.

Czy takie rozwiązanie byłoby dobre? Tworzyć osobne tabele dla każdego przedsiębiorstwa i do tej tabeli umieszczać dane jakie przedsiębiorstwo wprowadzi (może być ich dużo). Czy MySQL będzie bardziej wydajne gdy będzie bezpośredni dostęp do tabeli równoznaczny z docelowym przedsiębiorcą.

Czy może zrobić tabele "przedsiębiorcy", i w niej umieszczać poszczególne firmy, zrobić też tabele "dane" i tam umieszczać wszystkie dane wszytkich przedsiębiorstw, a później odwoływać się np. przez ID ?

Jaki sposób byłby bardziej optymalny?
magnus
Osobne tabele dla każdej firmy to niezbyt dobry pomysł (oględnie mówiąc winksmiley.jpg). Wyobraź sobie np. zrobienie listy wszystkich firm.
Jeśli wpisywanych danych jest dużo, to lepiej podzielić je na kilka tabel grupując wg jakichś kryteriów (np. osobno dane adresowe, osobno inne). Tylko to sensownie podzielić, żeby potem nie było trzeba dawać dużo join'ów.
Zasadniczo dobrze poindeksowana baza lepiej sobie radzi z większą ilością prostych rekordów, niż z mniejszą ilością ale rekordów z dużą ilością kolumn.
Fifi209
Jak najbardziej rozwiązanie drugie, właśnie do tego służą relacje w bazach danych ;]

Przy rozwiązaniu pierwszym jest to nierealne - wyszukaj np. firmę, która jest na ulicy takiej i takiej, a numer kontaktowy to taki i taki ;]
lukasz_matysek
Do tego nie obawiaj się, że dane 1200 przedsiębiorstw zawarte w dwóch tabelach jakoś "zapchają" ci bazę (piszę o tym bo pytałeś o optymalizację). Przeprowadź sobie prosty test, zrób inserta, wrzucając losowe dane do tabeli o takiej strukturze jaką masz w tej swojej bazie firm. Wykonaj tego inserta tak z 500 000 razy, a potem zacznij się bawić selectami wyszukując informacje. Popatrz sobie na czasy wykonywania selecta, a otrzymasz swoją odpowiedź w temacie optymalizacji smile.gif

ps - nawet jeśli coś by zwolniło, zawsze pozostają jeszcze indeksy smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.