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

Apakah soft_delete Laravel membutuhkan indeks di MySQL?

Kolom deleted_at bukan kandidat indeks yang baik. Saya akan mencoba menjelaskan lebih baik dibandingkan dengan komentar:indeks hanya berguna ketika kardinalitasnya relatif tinggi. Kardinalitas adalah angka yang menggambarkan keunikan indeks dalam kumpulan data. Itu berarti jumlah total catatan dibagi dengan total catatan unik.

Misalnya, kardinalitas kunci utama adalah 1. Setiap catatan berisi nilai unik untuk kunci utama. 1 juga, angka tertinggi. Anda dapat menganggapnya sebagai "100%".

Tapi, kolom seperti delete_at tidak memiliki nilai seperti itu. Apa yang dilakukan Laravel dengan delete_at adalah memeriksa apakah itu nol atau tidak. Itu berarti ia memiliki dua nilai yang mungkin. Kolom yang berisi dua nilai memiliki kardinalitas yang sangat rendah yang menurun seiring dengan bertambahnya jumlah record.

Anda dapat mengindeks kolom seperti itu, tetapi itu tidak akan membantu apa pun. Apa yang akan terjadi adalah hal itu dapat memperlambat dan menghabiskan ruang.

TL;DR:tidak, Anda tidak perlu mengindeks kolom itu, indeks tidak akan berdampak menguntungkan pada kinerja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan Data Setiap Jam di MySQL

  2. Tidak dapat terhubung ke database (000webhost)

  3. Bagaimana cara mendapatkan hasil di 2 tabel?

  4. Peringatan:mysql_connect():Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata sandi:YA)

  5. MySQL setara dengan modul dblink PostgreSQL?