![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 362 Pomógł: 27 Dołączył: 14.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
W jaki sposób mogę zoptymalizować to zapytanie? Obecnie wykonuje się koło 50 sekund, natomiast po usunięciu 3 JOINa jest to kwestia niecałej sekundy.
-------------------- zmoderowano - waga i rozmiar
|
|
|
-basel- |
![]()
Post
#2
|
Goście ![]() |
Ostatni LEFT JOIN zmień na RIGHT JOIN dla próby.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 362 Pomógł: 27 Dołączył: 14.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Bez zmian. Nawet samo wywołanie:
"SELECT * FROM (SELECT * FROM `contacts` WHERE `contactGroup` = 4 ORDER BY `contactId` DESC) AS `contacts` GROUP BY (`contactClientId`)" wszystko zawiesza i wykonuje się w nieskończoność.. W tym zapytaniu chcę pobrać 1 ostatni rekord z tabeli `contacts` dla każdego klienta będącego w grupie 4(bo klient może być w kilku grupach). Ten post edytował evolucja 16.09.2013, 15:52:02 -------------------- zmoderowano - waga i rozmiar
|
|
|
-arrtxp- |
![]()
Post
#4
|
Goście ![]() |
Rozbić na 2 zapytania ? Dodać indeksy ?
Ten post edytował arrtxp 16.09.2013, 15:50:44 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 362 Pomógł: 27 Dołączył: 14.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Indeksy są, w tabeli kontakt wyglądają tak:
Jak rozbić na dwa zapytania? -------------------- zmoderowano - waga i rozmiar
|
|
|
-arrtxp- |
![]()
Post
#6
|
Goście ![]() |
Przedstaw całą strukture tabel, bo te całe Twoje zapytanie do dupy jest niepodobne. Lub opisz co chcesz osiągnąć.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Proponuję denormalizację poprzez dodanie osobnej kolumny, która będzie przechowywała ID ostatniego kontaktu. Zachowanie poprawności danych osiągniesz poprzez triggery.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 10:20 |