Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: budowa struktury dobrej bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
sagittariuspl
jestem w trakcie pisania skryptu, ale z moich obliczeń wynika, że będzie on strasznie bazo chłonny. baza bedzie miała ok. 300 MB przy 3 milionach wierszy. wiem, że to wyglada strasznie. i tu moje pytanie: jak dobrze stworzyć taką bazę, by wyszukiwanie trwało stosunkowo krótko i zabierało mało mocy serwera. czy lepiej rozbić to na kilka baz i wyszukiwać partiami według potrzeb?
dr_bonzo
Odpowiednie indexy. Full Text indexy.
sagittariuspl
wpadłem na pomysł jak trochę to przyspieszyć zmniejszając rozmiar bazy o 30-50% (powineniem na to szybciej wpaść i mój pierwotny sposób, był jednym słowem do du... szy - pełna amatorka), ale nadal mnie zastanawia czy przeszukanie 3 mln wierszy nie zajmie wieczności na nie moim wszak serwerze. może lepiej podzielić zawartość na kilka tabel (np. według pierwszej litery jednej z kolumn) i w ten sposób wielkość przeszukiwania zmniejsza się do ok. 10 mb, co będzie chyba najlepszym rozwiązaniem
dr_bonzo
Ale co ty wyszukujesz? Wg czego? ID rekordu, czy w polach typu TEXT?
sagittariuspl
według pola typu TEXT
DeyV
Aby cokolwiek więcej powiedzieć na ten temat potrzeba by było parę dodatkowych informacji na temat tych tabel i planowanego sposobu ich wykorzystania.

Możliwości optymalizacji jest bowiem sporo.

Począwszy od utworzenia tabel słownikowych, ułatwiających wyszukiwanie poszczególnych wyrażeń, poprzez zaprojektowanie bardziej złożonych indexów (nie wiem, jak to teraz wygląda w MySQL), na FULL text, już wspomnianym, kończąc.
sagittariuspl
mam zamiar stworzyć jedną tabelę z tekstem i kilkanaście danych liczbowych, które postaram się, jeżeli będzie to możliwe, ograniczyć do boolean (jedna taka będzie na pewno) ale wiele po prostu liczb w jednym wierszu będę musiał umieścić. wychodzi mi bardzo rozbudowana baza z wieloma kolumnami i wierszami. aż się boję tworzyć dalej skrypt
DeyV
Przepraszam, ale ja chyba czegoś nie rozumiem.
1 tabela z kilkunastoma kolumnami to według Ciebie skomplikowana i rozbudowana baza?

To co mamy powiedzieć o bazie tego forum, gdzie jest kilkadziesiąt tabel, w każdej po kilkanaście / kilkadziesiąt pól, całość warząca dobre kilkaset mega?
sagittariuspl
jasne, tylko mówimy o 3 mln wierszy biggrin.gif (a i ta liczba jest chyba zaniżona patrząc na moje kolejne wyniki), na razie tworzę to wszystko bez bazy, ale w ten sposób odpada funkcja udostępnienia skryptu wiekszej ilości osób
mike
Cytat(sagittariuspl @ 17.03.2007, 15:11:12 ) *
jasne, tylko mówimy o 3 mln wierszy biggrin.gif
Jedna tabela i 3mln wierszy to nadal pikuś.
Nie ma czym się jarać.
sagittariuspl
skoro tak, to zobaczymy jak to będzie działać...
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.