Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] 6 mln rekordów, indeks i SELECT wykonujący się grubo ponad minutę., Co może być przyczyną?
adbacz
post
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

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


W tabeli mam ponad 6 mln rekordów, założony indeks na kolumnę 'created_at_timestamp' i wykonuję zapytanie po rekordy:
  1. (SELECT id FROM link WHERE ( created_at_timestamp <= 1485024231 AND created_at_timestamp >= 1484160231 ) ORDER BY id LIMIT 0, 1) UNION (SELECT id FROM link WHERE ( created_at_timestamp <= 1485024231 AND created_at_timestamp >= 1484160231 ) ORDER BY id LIMIT 99, 1)

To zapytanie wykonuje się naprawdę baaardzo długo: https://prnt.sc/g6g3ac

Sprawdziłem profilerem w PMA i pokazuje, że najdłużej działa Sending Data: https://prnt.sc/g6ggo2

Co może być tego przyczyną? Miał ktoś podobny problem?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


1. Kolejność w WHERE ustaw tak, aby na początku był warunek wykluczający najwięcej rekordów.
2. Dość kosztowne jest sortowanie dużych tabel.
3. Sprawdzałbym po kolei od najprostszego zapytania typu "select id from link limit 0, 1", by znaleźć przyczynę
4. Nie wszystko da się zoptymalizować, pewnych rzeczy się nie przeskoczy
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: 11.10.2025 - 08:25