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

Pengoptimalan pernyataan penghapusan MySQL

Jika DELETE dimaksudkan untuk menghilangkan sebagian besar baris dalam tabel itu, satu hal yang sering dilakukan orang adalah menyalin hanya baris yang ingin Anda simpan ke tabel duplikat, lalu menggunakan DROP TABLE atau TRUNCATE untuk menghapus tabel asli lebih cepat.

Indeks dapat membantu menemukan baris yang perlu Anda hapus, tetapi penghapusan memerlukan pembaruan indeks. Setelah menghapus banyak baris, indeks mungkin tidak seimbang dan memerlukan beberapa pemeliharaan dengan OPTIMIZE TABLE .

DATE_SUB() fungsi adalah ekspresi konstan (tidak bervariasi baris demi baris) sehingga pengoptimal kueri harus cukup pintar untuk memfaktorkannya dan melakukan penghitungan satu kali.

Anda tidak perlu membuat indeks tambahan untuk kunci utama. Batasan kunci utama secara implisit membuat indeks yang memberikan manfaat yang sama seperti indeks kunci non-primer.

Indeks gabungan mungkin sama bergunanya dengan indeks satu kolom, asalkan kriteria pencarian Anda merujuk pada kolom paling kiri dari indeks. Peringatan "mungkin" adalah karena node indeks individu menjadi lebih besar sehingga membutuhkan lebih banyak memori untuk menyimpan indeks, tetapi ini adalah faktor yang cukup kecil sehingga saya tidak akan membuat indeks satu kolom lainnya secara keseluruhan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL menunjukkan jumlah selisih dua nilai

  2. mysql -v kesalahan baris perintah (linux/ubuntu)

  3. fungsi bind_param() pada non-objek dalam kode baru saya

  4. mysql — Bagaimana menangani pencarian kueri dengan karakter khusus /(garis miring ke depan) dan \(garis miring terbalik)

  5. Kolom Jumlah MySQL JIKA ID ada di kueri tabel lain