![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 12.01.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam pewien problem, nie wiem czy uda mi się tutaj go dobrze przedstawić, ale spróbuję: Posiadam tabelę zawierającą listę pewnych obiektów, do każdego z tych obiektów muszę przypisać bardzo dużą liczbę różnych atrybutów, na zasadzie - do id obiektu przypisany jest id atrybutu z innej tabeli (mam tabelę gdzie jest ponad 100 różnych atrybutów w trzech kategoriach), domyślam się, że sposób z utworzeniem dodatkowych kolumn w tabeli z obiektami i przechowywaniem tam id obiektów jest niezbyt rozsądny, chciałbym rozwiązać to w ten sposób: tworzę nową tabelę o następującej strukturze: Kod +---+-----------+--------+-----------+----------+ |ID | OBJECT_ID | ATR_ID | ATR_NAME | ATR_TYPE | +---+-----------+--------+-----------+----------+ | 1 | 10 | 1 | atrybut 1 | 1 | | 2 | 10 | 5 | atrybut 2 | 1 | | 3 | 10 | 3 | atrybut 8 | 1 | | 4 | 10 | 15 | atrybut 4 | 3 | | 5 | 10 | 8 | atrybut 5 | 2 | | 6 | 02 | 21 | atrybut 7 | 2 | +---+-----------+--------+-----------+----------+ Tylko teraz pytanie czy jeżeli będę miał np. 1000 obiektów do każdego obiektu będzie przypisane powiedzmy średnio 50 atrybutów co daje nam 50 tyś rekordów w tabeli z atrybutami obiektów, czy to nie skilluje bazy? Można to rozwiązać w jakiś inny sposób? Dzięki za pomoc, pozdrawiam. Ten post edytował awakening 13.06.2009, 13:24:06 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Jeśli masz dobrze pozakładane indeksy, to nie powinno być problemu.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 12.01.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
a co jak baza obiektów się rozrośnie o kolejny tysiąc albo dwa? nie ma na to innych rozwiązań?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Spokojnie, są bazy, które wytrzymują i setki tysięcy.
Po to zostały zaprojektowane, żeby z nich korzystać. Na mocniejszych systemach są takie, które trzymają i kilka milionów z czasem selectów max kilka sekund. Najważniejsze: indeksy, indeksy i jeszcze raz indeksy. Bez tego i sto rekordów będzie katorgą. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Możesz polecić dobre materiały opisujące problem indeksów, jak zakładać żeby było dobrze i żeby nie przedobrzyć?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Pod latarnią najciemniej? http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 12.01.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Czyli logicznie rzecz biorąc powinienem założyć indexy na kolumnę OBJECT_ID i ATR_ID, dobrze myślę?
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Masz EXPLAIN, to będziesz wiedział. [;
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 14:15 |