![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 21.03.2004 Skąd: Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
Mam stworzyć system obsługujący bardzo duże ilości użytkowników. Zbudowany w pełni na PHP5 i głównie wykorzystujący MySQL(i), jednak z możliwością podpięcia dowolnej bazy (własny driver, nie chce się bawic w ADODB).
Zastanawia mnie, czy przy paru tysiącach rekordów warto wrzucać takie rzeczy, jak opisy tekstowe do bazy danych. Teoretycznie wydaje się, że najlepszą opcją było by przechowywanie elementów tekstowych oraz innych im towarzyszących (np. jakieś atrybuty) w pliku XML (jeden plik to jeden zestaw: opis + atrybuty). Czy parsując go SimpleXML, można by zyskać dużo lepszą prędkość działania, niż korzystając z bazy i pól typu TEXT? Oczywiscie mankamentem tego pomysłu jest brak możliwosci (z powodów oczywistych) przeszukiwania po opisach i innych elementach znajdujących się wewnątrz plików XML. Nie chce zaśmiecać bazy niepotrzebnymi dziesiątkami megabajtów opisów. Nie wiem tylko, jak to ma sie do wydajności parsera. Jeśli ktoś ma doświadczenie w temacie, proszę o jakieś rady i przydatne informacje. Ten post edytował Zodiac 17.08.2004, 02:17:54 -------------------- PHP5 w/MySQL, JavaScript, SOAP, AJAX, RSS and much more ;)
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 0 Dołączył: 22.07.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat z tego co mnie wiadomo, im większa tabela i więcej w niej danych, tym wolniej się ją przeszukuje Ha... dobre sobie. Co masz na myśli pisząc "więcej danych"? Ilość rekordów, czy duży rozmiar pojedynczego rekordu? Jeśli to drugie to nie ma to wpływu na szybkość przeszukiwania, zwłaszcza jeśli nie zamierzasz wyszukiwać względem kolmny, która będzie przechowywać duże ilości danych. To pierwsze ma wpływ, ale w dobrze zaprojektowanej bazie w praktyce niewielki, bo czas wyszukiwania jest logarytmiczny. Pozakładaj indeksy na kolumny wg. których będziesz wyszukiwał i będzie szybko działać. Cytat w tabeli aktualnie jest 2 tys elementów, do końca roku ma byc 5x tyle. 10 tys. rekordów? To bardzo mało. W pracy mam do czynienia z tabelami po 2mln rekordów i czas przeszukiwania takiej tabeli dla przeciętnego człowieka, jest taki sam jak przeszukiwanie tabeli z 1000-cem rekordów. Używanie wielu różnych systemów do przechowywania danych sprowadza inne kłopoty. Np. komplikuje robienie backupów i zagraża integralności danych. Co się stanie jeśli kotś przez przypadek skasuje jeden plik XML? W bazie będziesz miał odwołanie do nieistniejącego pliku i nie będziesz w stanie nad tym zapanować. Przechowuj dane, które stanowią całośc w jednym miejscu. 3xTAK dla baz danych ![]() Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 22.06.2025 - 13:02 |