![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 15.05.2004 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mam wykonać zapytanie:
I problem sie pojawia gdy w którymkolwiek miejscu dodaje OR us.user_level = 1 nieważne czy jest to na koncu, czy na poczatku tego drzewa zależności i niezależnie od umieszczenia nawiasów, za każdym razem gdy to dodam zapytanie trwa kilkanaście sekund, a bez tego trwa ułamek sekundy. Próbowalem zamiast user_level dać inną zalezność i dalej to samo Nie wiecie co może byc powodem? Przy tym zapytaniu dodawane jest kilkanaście wpisów a tabela ma kilka tysięcy wpisów. Na nielicznych serwerach wyrzuca błąd zapytania SQL, juz w tej chwili nie pamiętam jaki i nie mam zapisanego, ale też powodem jest ten ostatni OR Struktura tabeli przemo_read_history wygląda tak:
Ten post edytował Przemo` 25.04.2005, 18:51:28 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Filtry ktore uzywaja bazy danych dla ORow dzialaja bardzo dlugo. Tego niestety nie przeskoczysz, algorytmy przeszukiwania nie dzialaja tak jak dla AND. Bazka jest na MySQLu, wiec masz male pole do popisu, ale np w PG moglbys napisac sobie wlasna funkcyjke ktora bys wywolywal i zobaczyl bys rezutlat. Kiedys przy testach aplikacji dla ponad 30 milionow rekordow kilka ORow spowodowalo spadek wydajnosci do kilkudziesieciu sekund. Po "dostrojeniu" zapytania (funkcje ktora mozna by powiedziec robila jako filtr) zeszlo do < 1s.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 00:47 |