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

Bagaimana cara mengoptimalkan basis data kueri ini dalam basis data besar?

Anda tidak memiliki indeks selain kunci utama. Anda perlu membuat indeks pada bidang yang Anda gunakan dalam pernyataan WHERE Anda. Jika Anda hanya perlu mengindeks 1 bidang atau kombinasi beberapa bidang bergantung pada SELECT lain yang akan Anda jalankan terhadap tabel itu.

Ingatlah bahwa REGEXP tidak dapat menggunakan indeks sama sekali, LIKE dapat menggunakan indeks hanya jika tidak dimulai dengan wildcard (jadi LIKE 'a%' dapat menggunakan indeks, tetapi LIKE '%a' tidak bisa), lebih besar dari / lebih kecil dari (<>) biasanya tidak menggunakan indeks juga.

Jadi tinggal code dan check bidang. Saya kira banyak baris akan memiliki nilai yang sama untuk check , jadi saya akan memulai indeks dengan code bidang. Indeks multi-bidang hanya dapat digunakan dalam urutan yang ditentukan...

Bayangkan indeks dibuat untuk bidang code, check . Indeks ini dapat digunakan dalam kueri Anda (di mana klausa WHERE berisi kedua bidang), juga dalam kueri dengan hanya code bidang, tetapi tidak dalam kueri hanya dengan check lapangan.

Apakah penting untuk ORDER BY id ? Jika tidak, biarkan saja, ini akan mencegah pengurutan dan kueri Anda akan selesai lebih cepat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara menggunakan variabel dalam membuat pernyataan basis data?

  2. Bagaimana saya bisa Memasukkan Data ke dalam Database MySQL?

  3. Cara mengulang set hasil mysql

  4. MySQL:Kelompokkan menurut dua kolom dan jumlahkan

  5. Peringatan:mysqli_query():Tidak dapat mengambil mysqli