Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Złożone zapytanie SELECT...IF....COUNT...
Forum PHP.pl > Forum > Bazy danych > MySQL
mario
Witam!!!!

W jaki sposób mogę zoptymalizować zapytania do bazy danych które teraz wykonuję jako dwa dla przykładu:

  1. SELECT COUNT(pozycja) FROM statystyki WHERE DATA='55' AND domena='7' AND slowo='35'
  2. SELECT pozycja FROM statystyki WHERE DATA='55' AND slowo='35'


Pierwsze sprawdza czy jest wartosc w polu pozycja dla okreslonych warunkow, a drugie wyciaga to pole i w ten sposob nie mam bledow zapytania jezeli wartosci w polu pozycja nie ma. Wydaje mi sie ze mozna to uproscic do jednego zapytania z IF jednak nie wiem jak.... Czy ktos moze mi pomoc?!

Dziekuje!

EDIT:

Chyba udalo mi sie samemu ulozyc zoptymalizowane zapytanie, przeszukalem forum winksmiley.jpg Jezeli zle skonstruowalem prosze mnie poprawic.

  1. SELECT pozycja , COUNT(pozycja) FROM statystyki WHERE DATA='55' AND domena='7' AND slowo='35'
webasek
Dobrze zrobiłeś zapytanie można też było po stronie php to zostawić i sprawdzać czy odpowiedź nie jest null i też nie byłoby błędów.
mario
Dziekuje za odpowiedz, w pracy nie mam ostatnio czasu aby zaglebiac sie w MySQL i przy rozbudowie systemu okazalo sie ze generuje za duzo zapytan przez to obciazajac skrypt. Jako ze zapytania te musza wykonac sie ok. 1-2 razy na dzien a pozniej juz moga byc czytane np. wyniki z tablicy to metoda cache'owania jak onet.pl czy nasza-klasa.pl wynikow przepisze serwis na cache'owanie i jak zauwazylem znacznie to przyspieszy prace (nawet kilkanascie razy szybsze dzialanie!!!) bo z doswiadczenia wiem ze nie ma sensu "bombardowac" bazy zapytaniami tymi samymi non-stop winksmiley.jpg

Co innego sklep internetowy a co innego system ktory sprawdza pozycje w wynikach google'a a tam wyniki wystarczy sprawdzic raz dziennie i ten system wlasnie za kazdy wywolaniem strony powodowal te same zapytania do bazy co strasznie "dusilo" skrypt ;(
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.