Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 0 Dołączył: 30.11.2003 Ostrzeżenie: (0%)
|
Czy ktoś może mi powiedzieć, jakie są zasady tworzenia przez MySQL tabel
tymczasowych przy wykonywaniu zapytań SELECT? Spotykam się niejednokrotnie, że analiza zapytania (EXPLAIN SELECT ...) ujawnia w kolumnie EXTRA wartość "USING TEMPORARY". Podejrzewam, że ma to negatywny wpływ na wydajność. Zapytanie mam takie:
a więc zupełnie proste... Ten IF jest nie do uniknięcia - zapytanie ma zwracać sumę i ilość transakcji różnych typów, w powyższym przykładzie pozostawiłem jedynie jedną kolumnę. Tak czy owak nawet powyższe zapytanie generuje "USING TEMPORARY" dla tabeli Transakcje. Indeksy są na wszystkich złączeniach, a mimo to MySQL nie korzysta z indeksu "KtoWpisal". Dlaczego? MySQL 4.0.18 Pozdrawiam, Krzysiek |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Moja propozycja
|
|
|
|
ktuvok USING TEMPORARY 5.11.2004, 20:58:24
DeyV Przy grupowaniu - zawsze wykorzystywane jest temp... 6.11.2004, 11:45:34
ktuvok Oczywiście, ale niestety nie dysponuję serwerem do... 6.11.2004, 21:00:43
ktuvok Zastosowałem się do Twojej propozycji. Ciekawe...
... 6.11.2004, 23:53:43
DeyV 1. nie ma sensu tworzyć dodatkowego indeksu IDOddz... 7.11.2004, 00:19:00 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 13:29 |