Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja zapytania
neo1986kk
post 13.02.2016, 17:34:18
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


Witam, mam pytanie, ponieważ myślę, że moje doświadczenie z językiem SQL nie pozwala mi odpowiedzieć czy moje zapytanie jest już zotymalizowane na maxa czy jeszcze da się je przyspieszyć bo powiem szczerze ze 2.6307 sek dla 500 rekordów to trochę długo.


  1. SELECT o.GID, (
  2.  
  3. SELECT d.date
  4. FROM deliveries d
  5. WHERE d.ORDER = o.GID
  6. ORDER BY d.date DESC
  7. LIMIT 1
  8. ) AS mdate, o.STATUS, d1.date
  9. FROM orders o
  10. LEFT JOIN deliveries d1 ON o.GID = d1.ORDER
  11. LEFT JOIN deliveries_sended ds ON d1.GID = ds.delivery
  12. WHERE (
  13. o.STATUS =6
  14. AND ds.date >'2016-02-10'
  15. )
  16. OR o.STATUS !=6
  17. GROUP BY o.GID
  18. ORDER BY o.date DESC


Zapytanie ma pobierać rekordy z bazy orders, które mają status różny od 6, lub takie które mają status 6, ale są wysłane (deliveries_sended) później niż 10 lutego

Z góry dzięki za odpowiedzi. Pozdrawiam.


Edit:

Wywaliłem Selecta w selekcie i teraz jest 1,6 sek dla 500 rekordów, to i tak sporo


  1. SELECT o.GID, o.STATUS, d1.date
  2. FROM orders o
  3. LEFT JOIN deliveries d1 ON o.GID = d1.ORDER
  4. LEFT JOIN deliveries_sended ds ON d1.GID = ds.delivery
  5. WHERE (
  6. o.STATUS =6
  7. AND ds.date >'2016-02-10'
  8. )
  9. OR o.STATUS !=6
  10. GROUP BY o.GID
  11. ORDER BY o.date DESC



Ten post edytował neo1986kk 13.02.2016, 17:39:52
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 09:50