![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Pytanie może dość banalne ale, mam ok 20 000 rekorodów każdy z nich ma folder, co jest szybsze w odczycie danych? Sprawdzenie rekordu w mysql czy sprawdzenie czy folder istnieje? Np. w przypadku istnienia folderu dopiero później łączę się z bazą w celu odczytu innych danych.
Ten post edytował !*! 7.10.2008, 10:54:42 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat mam Skoro masz to sprawdź i podziel się z nami wynikami swojego testu ![]() -------------------- "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: 5 Pomógł: 1 Dołączył: 2.10.2008 Skąd: wertykalne Ostrzeżenie: (0%) ![]() ![]() |
W większości przypadków baza będzie szybsza.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Kod do sprawdzenia dla folderu:
Kod dla bazy:
Wynik: Kod Czas dla folderów: 0.00024s 0.00029s Kod Czas dla bazy: 0.00037s 0.00034s Rekordów i folderów było zaledwie 50. nospor - jestem ciekaw czy ktoś już to sprawdzał, ma jakieś doświadczenia z tym związane... Co jest bardziej wydajne przy większej liczbie itp. są jakies rozwiązania? Jeśli tak to jakie? Ten post edytował !*! 7.10.2008, 16:46:43 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Info: 20000 folderów i tyleż odpowiadających im rekordów w bazie danych.
Test: Sprawdzenie istnienia folderu o określonej nazwie. Kod testowy:
Wyniki: 1. Brak indeksów w bazie: Kod Baza danych: 0.016986 sekund(y) System plików: 0.001505 sekund(y) Kod Baza danych: 0.01789 sekund(y) System plików: 0.001337 sekund(y) Kod Baza danych: 0.016653 sekund(y) System plików: 0.00139 sekund(y) Kod Baza danych: 0.017132 sekund(y) System plików: 0.001288 sekund(y) Kod Baza danych: 0.01752 sekund(y) System plików: 0.00128 sekund(y) 2. Założony indeks na polu zawierającym nazwę folderu: Kod Baza danych: 0.000307 sekund(y) System plików: 0.001344 sekund(y) Kod Baza danych: 0.000303 sekund(y) System plików: 0.001227 sekund(y) Kod Baza danych: 0.000392 sekund(y) System plików: 0.001147 sekund(y) Kod Baza danych: 0.000427 sekund(y) System plików: 0.001406 sekund(y) Kod Baza danych: 0.000359 sekund(y) System plików: 0.001149 sekund(y) Wnioski - zakładając odpowiedni indeks baza danych jest o wiele szybsza ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Niby ino kurde jo, ale... Indeks ma to do siebie że jeśli np. mam rekord i folder "domek", to po np. wyszukaniu "dom" wyświetli się "domek" bo on został zindeksowany.
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Eeee?
(...) LIKE '%dom%' (...) wyświetli również 'domek', ale (...) LIKE 'dom' (...) tylko 'dom' Albo nie rozumiem w czym problem... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
LIKE nie jest dobrym rozwiązaniem... albo inaczej, jest dobry pod waruniem że mamy bardzo mało rekordów. Normalnie używam [czyliw w przypadku znacznej większej liczby rekordów]:
Kod SELECT willa FROM data WHERE MATCH(willa) against ('$wynik*' IN BOOLEAN MODE)
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Ja również nie rozumiem. Najpierw chcesz sprawdzić czy folder o konkretnej nazwie istnieje, a potem wchodzisz w wyszukiwanie pełnotekstowe. Stwórz zwykły indeks i przeszukuj bazę poprzez zwykłe porównanie (pole = 'dom').
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Dostęp do dysku jest wyraźnie szybszy niż do bazy - ale tylko dostęp. Im większe obciążenie serwera i większa liczba danych tym większa przewaga bazy - powyżej pewnej ilości praktycznie nie da się już tego robić na plikach/folderach etc.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 19:44 |