![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 1 Dołączył: 18.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Czesc,
mam zapytanie, ktore jeszcze nie zawiera 100% okreslonych pozycji, a juz generuje sie ponad 4s. Baza jest w miare przyzwoicie zindeksowana. Chcialbym zasiegnac Waszej opinii, czy jest mozliwosc ulepszenia samego zapytania. Zapytanie:
probowalem pozbyc sie podzapytan i stworzylem cos takiego
dziala o wiele szybciej ale pojawia sie kwestia filtrowania wg countow , gdyz wrzucajac do warunku where przykladowo count( tuser_log.id )=1 wyrzuca "invalid use of group function". Moze to jakas moja niewiedza... dlatego chcialbym zasiegnac Waszej opinii. A gory dzieki za pomoc. edit. zapomnialem dodac, ze ify sa wstawione po to, zeby uniknac wartosci NULL w zapytaniu (kwestia uzycia kwerendy w frameworku.. nie ma filtrow obslugujacych nulle) Wasp update. zapomnialem o having ![]() ![]() Ten post edytował Wasper 22.05.2012, 09:19:57 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
uff, ale to wielkie.
nie mam czasu analizowac calosci, ale odniose sie do tego kawalka:
przedefiniuj te kolumny na NOT NULL, i ustaw wartosc domyslna. ominiesz w ten sposob kilka operacji czyli czysty zysk. [zwlaszcza na OR] ogolnie stosowanie wartosci NULL w bazie danych oznacza ze najprawdopodobniej projekt jest nieprzemyslany / baza nie jest znormalizowana przemysl, czy optymalizacja tylko zapytania da ci efekt. pokaz jakiegos explaina, to tez troche nam podpowie. co do indeksow, radze uwazac. ja np wczoraj wywalilem wczoraj primary, na zastepczym indeksie (czyli popularny autoinc). po jego wywaleniu, i zalozeniu zwyklego indeksu na inna kolumne - zapytanie z czasu ~~4sec spadlo do 0,8 po kolejnej rozkminie i przebudowie tabeli - uzyskalem efekt na poziomie ~~0,02 z ~~4 sec na ~~0,02 wiec optymalizacja zapytania o conajmniej 200% pisze to dlatego - ze chce zwrocic uwage, iz nie uzyskalbym az takiej redukcji czasu zmieniajac tylko kwerende. (oczywiscie najwazniejszym kryterium tabeli byl odczyt.) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 20:23 |