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

Optimasi database MYSQL menggunakan pengindeksan

Mengenai pertanyaan indeks, indeks tidak hanya diinginkan, tetapi dibutuhkan untuk "mempercepat" sesuatu. Seperti yang saya pahami (dalam istilah "awam"), fungsi indeks adalah untuk mempercepat pencarian dan pemulihan data di dalam tabel.

Alasan untuk menggunakan indeks:

  1. Identifikasi secara unik setiap baris pada setiap tabel (bagaimanapun juga, kunci utama adalah indeks)
  2. Indeks diurutkan (meskipun data tidak)
  3. Mempercepat pencarian dan filter:Indeks membuat pemulihan data lebih cepat, karena "menahan" penempatan data dalam tabel (ini "menunjukkan" data yang ingin Anda pulihkan). Juga mempermudah mesin database untuk memfilter data (selalu lebih cepat dan lebih mudah untuk memfilter diurutkan data dari diacak data)
  4. Optimalkan cara data dipulihkan saat menggunakan tabel terkait:Setiap kunci asing harus diindeks untuk mempercepat kueri yang melibatkan hubungan kunci utama - kunci asing

Beberapa "aturan jempol" yang saya gunakan untuk memutuskan bidang mana yang perlu diindeks:

  • Setiap kunci utama diindeks (jelas satu:kunci utama harus unik dan bukan nol)
  • Setiap kunci asing harus diindeks (untuk mengefisienkan hubungan kunci utama - kunci asing)
  • Setiap bidang numerik atau tanggal yang saya perlukan untuk melakukan penelusuran harus diindeks. Yang mengatakan, saya mencoba menghindari double (atau jenis numerik floating point lainnya) yang akan diindeks, karena umumnya digunakan untuk menyimpan nilai yang tidak dimaksudkan untuk dicari.
  • Setiap char atau varchar bidang di mana saya perlu melakukan pencarian harus diindeks. Cobalah untuk menghindari indeks pada text bidang, karena mereka dapat menyimpan nilai yang sangat besar di dalamnya.
  • Hindari pengindeksan biner (blob ) bidang... tidak masuk akal
  • Jangan jatuh dalam godaan mengindeks semuanya. Luangkan waktu Anda untuk memutuskan bidang mana yang harus diindeks dan bidang mana yang tidak boleh diindeks.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memasukkan nilai $variable atau $_POST ke dalam tabel mysql

  2. kesalahan pembatas mysql

  3. bidang int pembaruan pembaruan mysql yaitu nol

  4. Mendapatkan kesalahan sintaks MySQL setelah mengirimkan formulir

  5. Mysql - Mysql2::Error:Nilai string salah: