Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Indeks baris salah saat mengelompokkan

Menemukan jawabannya sendiri, harus memisahkan kueri menjadi beberapa subkueri.

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

Rupanya, itu menyebabkan sejumlah besar baris yang diakses untuk kueri (sesuai EXPLAIN ), tetapi berhasil memperbaikinya juga dengan indeks tambahan. Jawaban lengkap untuk masalah itu dapat ditemukan di sini:Menghitung indeks baris dengan subquery yang bergabung, menghasilkan baris yang diperiksa 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. Menambahkan teks ke database

  2. Apakah ada perbedaan dalam menggunakan INT(1) vs TINYINT(1) di MySQL?

  3. sumber daya php mysql_connect selalu sama

  4. Kueri yang tidak perlu di Hibernate - MySql

  5. Bagaimana cara menggunakan order by di Laravel ketika menggunakan CASE WHEN?