Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 4 Dołączył: 21.03.2005 Ostrzeżenie: (0%)
|
Czesc miszcze od MySql-a,
Mam zagwostkę i pytanie. Here is situation. Zapytanie :
Tabela stats ma około 70 MB i szczerze powiedziawszy jest kiepsko zoptymalizowana. Nie starczyło mi cierpliwości, żeby sprawdzić jak długo wykonuje się to zapytanie. Jeżeli wykonuję je osobno tzn:
dostaje 32 rzędy w 0.00 sec
dostaje odpowiedź w 0.00 sec jeżeli wezmę oszukam całą procedurę i wstawie do IN wynik zapytania:
dostaję odpoeidź w 0.42 sec Pytanie - dlaczego wykonanie dwóch selectów na raz trwa nieskończenie dłużej niż takie "oszukanie" zapytanie z IN-em?? Jak można przekonać optymalizera MySQL-owego do poprwnej interpretacji?? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%)
|
z jednej strony prawdopodobnie brakuje indeksów, ale z drugiej prawdopodobnie tworzenie tymczasowej tablicy zamula serwer. pewnie robi jakis zlaczenie tablic zeby pozniej wybrac z nich dane. Chociaz moge sie mylic.
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 4 Dołączył: 21.03.2005 Ostrzeżenie: (0%)
|
z jednej strony prawdopodobnie brakuje indeksów, ale z drugiej prawdopodobnie tworzenie tymczasowej tablicy zamula serwer. pewnie robi jakis zlaczenie tablic zeby pozniej wybrac z nich dane. Chociaz moge sie mylic. No i to jest ciekawa teoria, bo jeżeli staram się wysterować optymalizera dając SQL_SMALL_RESULT co teoretycznie zmniejsza wielkość tablicy - nie daje żadnego efektu. Z poprzednimi ripostami iż "brak indexów, albo coś" jakoś się nie zgodzę - przypominam iż osobno zapytania wykonują się bardzo szybko - a na obu tabelach pola id są indexami. A name jest typu varchar(20) Ktoś tam prosił o explain
Natomiast to zapytanie wykonuje sie bardzo optymalnie - 0.17 sec - dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) - ale jak wyjaśnić tą zagwostkę iż z sub selectem jest niewspółmiernie dłużej niż z podanymi wartosciami. Ten post edytował mkozak 2.03.2007, 13:05:29 |
|
|
|
mkozak [optymalizacja] Select Where IN( Select) 28.02.2007, 12:09:46
dr_bonzo A mozesz dac strukture bazy, z indexami? 28.02.2007, 12:36:50
SongoQ Sprawdz tak:
[SQL] pobierz, plaintext SELECT coun... 1.03.2007, 14:17:31
SongoQ O ile pamietam to dla kazdej wartosci bedzie jecha... 2.03.2007, 13:37:40 ![]() ![]() |
|
Aktualny czas: 30.12.2025 - 17:03 |