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 |
|
|
|
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
DeyV Moja propozycja
[SQL] pobierz, plaintext SELECT O... 6.11.2004, 22:46:53
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: 24.12.2025 - 01:33 |