Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc z optymalizacją zapytania mysql.
Forum PHP.pl > Forum > Bazy danych > MySQL
inwob
Witam.

Potrzbuje pomocy z dość długim zapytaniem mysql.
  1. SELECT `p`.`name`,`b`.`browser_sha1` FROM `players` `p` LEFT JOIN `browsers` `b` ON `b`.`account_id` = `p`.`account_id` WHERE `p`.`lastip` = 123 AND `p`.`online` = 1 AND `browser_sha1` IN (SELECT `b`.`browser_sha1` FROM `players` `p` LEFT JOIN `browsers` `b` ON `b`.`account_id` = `p`.`account_id` WHERE `p`.`name` = 'Inwob' ) AND `p`.`name` != 'Inwob' GROUP BY `p`.`name`;


Czas jego wykonania wynosi 0.05 sec co jest za duża wartością.
Dodałem indeksy na account_id ora browser_sha1 ale to nie pomaga.

players - ok. 110000 rekordów
browsers - ok. 10000 rekordów, dziennie przybywa około 1000 nowych.

account_id to int(40)
browser_sha1 to varchar(40)

Co moge zrobić aby przyśpieszyć wykonanie tego zapytania?
Dziękuje i Pozdrawiam.
Adi32
Pięć setnych sekundy to nie jest tragedia w tym przypadku.
Nie mam pomysłu jak przyśpieszyć to zapytanie ale podejrzewam, że odpalasz je w pętli pobierając po jednym wierszu i może w tym problem? Jeżeli się nie mylę, to być może powinieneś zbudować zapytanie które najpierw pobierze wszystkie potrzebne wiersze?
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.