Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalny schemat bazy, Jaki byłby najlepszy schemat bazy
malinka
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
nospor
post
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

Go to the top of the page
+Quote Post
malinka
post
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ść.
Go to the top of the page
+Quote Post
nospor
post
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

Go to the top of the page
+Quote Post
malinka
post
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
Go to the top of the page
+Quote Post
nospor
post
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

Go to the top of the page
+Quote Post
by_ikar
post
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
Go to the top of the page
+Quote Post
thek
post
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ć smile.gif
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
Go to the top of the page
+Quote Post
nospor
post
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 biggrin.gif:D:D
Rany, thek, ty zboku jeden.... malinka to facet. O czym ty myślisz w pracy? tongue.gif
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

Go to the top of the page
+Quote Post
malinka
post
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
Go to the top of the page
+Quote Post
nospor
post
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ą" smile.gif

Cytat
"Indexy planowałam", "nie miałam nigdy", "swego czasu planowałam" to odmiana męska? wink.gif
Hehe, ja sie skupiłem na tekście, który przytoczyłem wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
malinka
post
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)
Go to the top of the page
+Quote Post
nospor
post
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 wink.gif

Dobra, sorki za zamieszanie. smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 21:38