Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nieprawidłowy indeks wiersza podczas grupowania

Sam znalazłem odpowiedź, musiałem podzielić zapytanie na wiele podzapytań.

SELECT
    mq.*,
    @indexer := @indexer + 1 AS indexer
FROM
(
    SELECT
        p.id,
        p.tag_id,
        p.title,
        p.created_at
    FROM 
        `posts` AS p
    LEFT JOIN
        `votes` AS v
            ON p.id = v.votable_id
            AND v.votable_type = "Post"
            AND v.deleted_at IS NULL
    WHERE
        p.deleted_at IS NULL
    GROUP BY
        p.id
) AS mq
JOIN
    (SELECT @indexer := 0) AS i

Najwyraźniej spowodowało to ogromną liczbę dostępnych wierszy dla zapytania (zgodnie z EXPLAIN ), ale udało się to również naprawić za pomocą dodatkowych indeksów. Pełną odpowiedź na ten problem znajdziesz tutaj:Obliczanie indeksów wierszy z podzapytaniem mającym złączenia, daje w wyniku wiersze zbadane A*B




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak stworzyć wydarzenie, które działa co 24 godziny?

  2. Nie można znaleźć indeksu FULLTEXT pasującego do listy kolumn (indeksy są ustawione)

  3. Jak wyłączyć sprawdzanie klucza obcego w MySQL?

  4. eclipse - jednostki JPA z tabel, brak wymienionych schematów

  5. MYSQL - Połącz dwie tabele