Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] długie zapytanie i dwa razy left join, jakie indeksy
-stanislaw-
post
Post #1





Goście







Cześć,

mam takie zapytanie:
  1. SELECT post.*, users.username, users.user_id AS users_id, users.avatar, users.pkt, users.post, users.date_register, users_field.city, users_field.footer FROM forum_posts post LEFT JOIN users ON post.user_id=users.user_id LEFT JOIN users_field ON users.user_id=users_field.user_id WHERE post.thread_id=272136 ORDER BY post.post_id ASC LIMIT 2580,20;


mam takie indeksy:
forum_posts
post_id - PRIMARY
user_id - INDEX
post_message - FULLTEXT

users
user_id - PRIMARY
username - UNIQUE

users_field
user_id - UNIQUE

Zapytanie wykonuje się ponad ponad sekundę czasami nawet kilka sekund. Na co powinienem dać jeszcze indeksy aby przyśpieszyć działanie zapytania?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
-Gość-
post
Post #2





Goście







dziwna sprawa bo ten sam problem mam ze zwykłym zapytaniem:
SELECT * FROM forum_posts WHERE thread_id=272136 ORDER BY post_id ASC LIMIT 2580,20;

co jest nie tak?
Go to the top of the page
+Quote Post
toffiak
post
Post #3





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


Dodaj jeszcze index na thread_id, włącz profilowanie i sprawdź zapytanie za pomocą explain


--------------------
Go to the top of the page
+Quote Post
-stanislaw-
post
Post #4





Goście







wyniki explain:
id - 1
select_type - SIMPLE
table - forum_posts
type - ref
possible_keys - thread_id
key - thread_id
key_len - 4
ref - const
rows - 11711
Extra - Using where; Using filesort

dodałem indeks na thread_id i działa wink.gif
wielkie dzięki

P.S. na czym polega profilowanie?
Go to the top of the page
+Quote Post
toffiak
post
Post #5





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


Szczegóły możesz doczytać tutaj jednak zazwyczaj wystarcza zaznaczenie opcji profilowania w phpmyadminie.


--------------------
Go to the top of the page
+Quote Post

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 Aktualny czas: 21.08.2025 - 10:16