![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Zastanawiam się jaki schemat bazy stworzyć. Docelowo będzie tysiące rekordów dla każdego z obiektów. Będzie można w nich wyszukiwać i w zależności od ustawień część będzie pobierana do wyświetlenia, czasem wszystkie, czasem tylko jeden z nich. Sposób wyświetlania będzie też zależał od preferencji użytkownika (osobna tabela na przechowywanie tej relacji, tu nie mam wątpliwości). Każdy z tych obiektów ma podobne pola (typ/przeznaczenie) niektóre mogą mieć więcej/mniej. Rozważam dwie opcje. 1. Osobne tabelki dla każdego obiektu i potem w PHP pobieranie poprzez UNION - w php tworzenie zapytania w zależności od rodzajów obiektów które mają zostać wyświetlone. 2. Jedna tabelka dla wszystkich i potem w zapytaniu coś ala kind IN() Które z tych rozwiązań byłoby optymalne? W tej chwili mam 1 opcje, ale 2 jest dużo łatwiejsza w zaimplementowaniu jeśli chodzi o php, bo całość przerzuca się na mysql. Jednak obawiam się czy jak będzie już kilkaset tysięcy rekordów to czy nie będzie to trudniejsze do wyszukiwania jako że może chcieć wyszukiwać np tylko w 3 obiektach, albo nawet 1 a i tak musiałby się przekopać przez wszystkie rekordy, a tak tylko do odpowiednich tabelek by się odwołał. Za każde sugestie, opinie z góry dzięki. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Kilkaset tysięcy to jak pierdnięcie dla mysql. Jedna tabela, +odpowiednie indeksy i po sprawie
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
no właśnie nie miałam nigdy okazji pracować przy bazie która liczy więcej niż tysiąc rekordów i teraz musze nad takimi rzeczami się zastanawiać.
A czy w przypadku jak dojdzie do kilku milionów też da rade? Nie jestem aż takim optymistą, ale muszę rozważyć taką możliwość. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Też da rade
Tylko zaznaczam: muszą być prawidłowo założone indeksy -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
ok, dziękuje po stokroć.
indexy planowałam założyć, ale najpierw muszę o nich więcej poczytać. Bo to że to dodatkowe miejsce, powodują wolniejsze wykonywanie się zapytań typu insert, update, delete - to wiem. Tak z ciekawości, bo swego czasu widziałam w jednym miejscu że była stworzona zupełnie nowa tabelka pod wyszukiwanie gdzie były indexy założone na pola tekstowe właśnie. Jest sens? Co prawda, był to zlepek 3 różnych tabeli, ale to akurat powodowało że podczas dodawania do jednej z nich trzeba było robić niezależnie update/insert do tej pod wyszukiwanie, co trochę bezsensu mi się wydaje, ale może jest o czymś o czym nie wiem. Ten post edytował malinka 17.01.2012, 12:43:37 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Sytuacja którą opisałeś mogła mieć miejsce np. gdy ktoś chciał robić wyszukiwanie pełnokonktekstowe a miał tabele typu InnoDB. Wyszukiwanie pełnokonktestowe wymaga tabeli MyIsam - dlatego ktoś musiał tworzyć kolejną tabelę na wyszukiwanie. To jedna z przyczyn.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Tamte pozostałe tabelki mogły wykorzystywać inny silnik (mechanizm składowania), przykładowo innoDB, żeby móc korzystać z relacji. A w przypadku dodatkowej tabeli, która była miksem tych trzech, ona z kolei mogła wykorzystywać MyISAM aby móc korzystać z wyszukiwania pełnotekstowego.
@UP ubiegłeś mnie ;> Ten post edytował by_ikar 17.01.2012, 12:49:04 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Zapewne chodzi o fakt, że tabele główne były na silniky InnoDB. Ten nie ma wsparcia dla Full Text Search (to ma silnik MyISAM), ale za to blokuje tylko na poziomie wiersza przy update/insert oraz ma wsparcie innych mechanizmów. W takim wypadku zrobiono mix obu... Teksty wywalono do jednej z tabel na silniku MyISAM (co pozwala Full Text search użyć), a reszta danych już jest w tabelach InnoDB. Dlatego poczytaj też o róznicach między silnikami, a powinno Ci się kilka tricków rozjaśnić
![]()
Powód edycji: [thek]: No tak... kobieta na forum = pomoc aż 3 userów, w tym 2 modów :D:D:D
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat : No tak... kobieta na forum = pomoc aż 3 userów, w tym 2 modów Rany, thek, ty zboku jeden.... malinka to facet. O czym ty myślisz w pracy? ![]() ![]()
Powód edycji: [thek]: "Indexy planowałam", "nie miałam nigdy", "swego czasu planowałam" to odmiana męska? ;)
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
ach. no tak. teraz już kojarzę. teraz to dopiero muszę sobie to przemyśleć. nie tak łatwo jest zaprojektować bazę samemu po raz pierwszy z myślą o wydajności, etc etc. Małe bazy danych to pikuś, ale jeśli mówimy o portalowych rozwiązaniach to tutaj doświadczenie jest przydatne ;o)
dzięki Panowie, offtop: thek, czasem dobrze jest być kobietą ;o))) nospor - nie wiem o czym ty myślisz ale jestem kobietą ;oP |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Wybacz malinko, ale zmylił mnie Twój męski ton wypowiedzi:
Cytat Nie jestem aż takim optymistą, Nie wiem, nie jestem kobietą, ale podejrzewam, ze zazwyczaj kobiety piszą: "Nie jestem aż taką optymistką" ![]() Cytat "Indexy planowałam", "nie miałam nigdy", "swego czasu planowałam" to odmiana męska? Hehe, ja sie skupiłem na tekście, który przytoczyłem ![]() ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
czasem mi się to zdarza. to wynik wiecznej pracy/studiów/liceum z praktycznie samymi facetami ;o)
ale Cytat "indexy planowałam założyć," juz napisałam dobrze ;o)
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat to wynik wiecznej pracy/studiów/liceum z praktycznie samymi facetami Hehe, ja też dużo czasu przebywam z facetami i jakoś nie mam problemów z poprawnym pisaniem..... joke ![]() Dobra, sorki za zamieszanie. ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 21:38 |