![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Mam zapytanie
Na kolumnie Status jest indeks. Status to CHAR(10). Takie zapytanie wykonuje się 78sekund Po usunięciu ORDER BY `Status` czas spada do 2-3sekund. Co robić? (IMG:style_emoticons/default/sad.gif) Indeks jest Zmieniałem bazę danych z MySQL 5.0 na 5.6 i tak się porobiło :/ Explain pokazuje: (IMG:https://s14.postimg.org/uc83n7h8h/image.png) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Poniewasz masz tam jeszcze warunki.
Musisz zalozyc indexy tez na warunki. Swoja droga masz zdziebko zwalone pola. To nie powinny byc zadne stringi a INTy ewentualnie ENUM jak chcesz dzialac na nazwach. I nie mowie tu tylko o kolumnie status. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Dzięki,
tylko: 1. na MySQL 5.0 nie było problemów :/ 2. Indeks nie może być za długi a liczba pól w warunkach jest spora 3. Dlaczego nie mogą być stringi? Mówisz o Miejsce i RodzajCiezarowki ? |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
ps:
I miejze litosc na przyszlosc i nie mieszaj jezykow DateRealizacji no jak to wyglada? (IMG:style_emoticons/default/wink.gif) Cytat Dlaczego nie mogą być stringi? Mówisz o Miejsce i RodzajCiezarowki ? Tak. Zakladam ze to sa jakies stale nazwy. Dla bazy latwiej jest zaindeksowac TINYINT/ENUM ktore ma raptem 10 roznych wartosci niz string ktory moze teoretycznie byc czym popadnie. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
ps: I miejze litosc na przyszlosc i nie miesaj jezykow DateRealizacji no jak to wyglada? (IMG:style_emoticons/default/wink.gif) A skąd wiesz, że to ja? (IMG:style_emoticons/default/smile.gif) Tak. Zakladam ze to sa jakies stale nazwy. Dla bazy latwiej jest zaindeksowac INT/ENUM ktore ma raptem 10 roznych wartosci niz string ktory moze teoretycznie byc czym popadnie. Jak pole "Miejsce" typu enum (3 wartości) to działało znacznie dłużej :/ |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Jak pole "Miejsce" typu enum (3 wartości) to działało znacznie dłużej Strasznie szybko to zmieniles. Az mi sie niechce wiezyc (IMG:style_emoticons/default/wink.gif) Cytat A skąd wiesz, że to ja? Coz.... moja wina (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Strasznie szybko to zmieniles. Az mi sie niechce wiezyc (IMG:style_emoticons/default/wink.gif) Było wcześniej i kilka miesięcy temu zmieniłem z enum na char Ten post edytował TomASS 24.11.2016, 17:14:49 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Wywal LEFT JOIN przy aliasie T (m_transporty).
Skoro później wymieniasz pola z tej tabeli we WHERE, to LEFT jest bez sensu. No chyba, że masz w warunku T.id IS NULL (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 20:35 |