Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja zapytania Mysql
maksik
post
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


Witam

Mam tabele zawierającą 1 milion komentarzy do poszczególnych artykułów, składającą się z trzech kolumn.

  1. Id, ArticleId, Message


Id - Auto
ArticleId - id artykułu
Message - treść wiadomości.

Przy pobieraniu komentarzy dla artykułu nr 1 jest przypisanych 10 000 komentarzy które posiadają Id od 1 do 10000.

Używam zapytania

  1. SELECT * FROM table Where ArticleId='1' Order by Id

czas zapytania wynosi 0.0003

natomiast
  1. SELECT * FROM table Where ArticleId='1' Order by Id Desc

czas zapytania wynosi 0.2124


Jak skrócić czas ładowania komentarzy dla tego artykułu jeżeli używam Desc? Wiem, że to dlatego iż sprawdza zapytanie niepotrzebnie pozostałe 990 000 rekordów, ale czy istnieje jakieś optymalne rozwiązanie, aby skrócić czas ładowania?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maksik
post
Post #2





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


Tak, zapomniałem dodać, że jest dodany indeks dla ArticleId oraz Id. Lecz z indeksem dla ArticleId czy bez nie widać różnic w czasie

Cytat(Pyton_000 @ 13.07.2017, 15:12:14 ) *
Kod
EXPLAIN SELECT * FROM table WHERE ArticleId=1 ORDER BY Id DESC


id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE table ref ArticleId ArticleId 4 const 8772 NULL

Ten post edytował maksik 13.07.2017, 14:18:54
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 20:23