![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
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? Ten post edytował !*! 15.06.2010, 11:59:49 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 15 Dołączył: 15.11.2007 Skąd: Nowogród Bobrz. Ostrzeżenie: (0%) ![]() ![]() |
Osobne tabele dla każdej firmy to niezbyt dobry pomysł (oględnie mówiąc
![]() 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. -------------------- Efemental.pl - nasz punkt słyszenia :: recenzje :: tylko metal!
Opensource'owy klon Cantra: http://github.com/magnax/Simtr |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
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 ;] -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 2 Dołączył: 25.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
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
![]() ps - nawet jeśli coś by zwolniło, zawsze pozostają jeszcze indeksy ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 16:03 |