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

Konfigurasi indeks MySQL

Pembaruan:

Lihat artikel ini di blog saya untuk analisis masalah yang lebih detail:

Saat Anda mengeluarkan sesuatu seperti LIMIT 150000, 10 , artinya MySQL harus melintasi 150,000 . ini rekam dan temukan 10 berikutnya .

Melintasi indeks lambat di MySQL .

Juga, MySQL tidak mampu melakukan pencarian baris terlambat.

Secara teoritis, jika Anda melakukan ORDER BY id LIMIT 100000, 10 , cukup menggunakan indeks untuk menemukan nilai dari 100000 ke 100010 , lalu cari hanya 10 baris yang memenuhi indeks itu dan mengembalikannya.

Semua sistem utama kecuali MySQL menyadarinya dan mencari baris hanya jika nilainya benar-benar akan dikembalikan.

MySQL , namun, mencari setiap baris.

Coba tulis ulang kueri Anda seperti ini:

SELECT  news.*
FROM    (
        SELECT  id
        FROM    news
        WHERE   cat_id='4'
        ORDER BY
                id DESC
        LIMIT 150000, 10
        ) o
JOIN    news
ON      news.id = o.id



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. COALESCE() untuk bidang kosong (tetapi bukan nol)

  2. Cara Membuat Database MySQL di cPanel

  3. Jumlahkan hasil dari beberapa kueri lalu temukan 5 teratas di SQL

  4. Haruskah kunci utama tabel MySQL diekspos?

  5. Cara mendapatkan Tanggal dari resultSet