Apa itu indeks di mysql?

Salah satu penyebab aplikasi menjadi lambat bisa disebabkan oleh jumlah record di database yang membengkak. Sejumlah besar catatan, apalagi jutaan, akan memengaruhi kinerja kueri, terutama pada saat pencarian. Menambahkan Indeks ke kolom MySQL dapat mempercepat kueri penelusuran

Apa itu Indeks?

Secara umum, indeks adalah daftar kata-kata yang diurutkan disertai dengan referensi atau referensi ke halaman yang menyebutkannya. Prinsip indeks di MySQL sama persis dengan yang ada di buku pada umumnya. Index di MySQL berisi pointer ke data terkait sehingga dapat membuat permintaan pencarian lebih cepat

Mempercepat Pencarian Data

Indeks dapat mempercepat pencarian pada kolom yang digunakan dalam klausa WHERE. Query bisa lebih cepat karena dengan MySQL Index tidak perlu melakukan Full Table Scan atau membandingkan seluruh data untuk mencari data yang sesuai

Penambahan indeks akan sangat bermanfaat untuk tabel yang memiliki banyak record dan sering melakukan query pencarian. Dalam kasus saya dengan tabel yang memiliki 1. 5 juta catatan, kecepatan permintaan pencarian dapat berubah dari 0. 5 detik menuju 0. 0003 detik setelah menambahkan Indeks ke salah satu kolomnya

Kolom yang Diindeks

Indeks dapat ditambahkan ke setiap kolom dalam tabel, namun penggunaan Indeks yang berlebihan akan berdampak pada kinerja kueri saat melakukan INSERT, UPDATE, dan DELETE karena INDEX juga perlu diperbarui. Oleh karena itu, sangat penting untuk menentukan kolom mana yang dirasa sangat diperlukan dalam Indeks. Index biasanya ditambahkan pada kolom yang sering digunakan sebagai template pada klausa WHERE dari query. Misalnya ketika Anda memiliki tabel seperti di bawah ini

id, kode_pendaftaran, nama, tanggal_lahir, sekolah_asal

Ketika kueri sering dibuat yang mencari data berdasarkan kode_registrasi dan nama, lalu tambahkan Indeks ke dua kolom tersebut. Sesederhana itu, informasi tentang jenis-jenis indeks dapat dibaca selengkapnya di dokumentasi MySQL. Bagaimana MySQL Menggunakan Indeks

Untuk membuat Indeks pada salah satu kolom, kueri di bawah ini dapat digunakan

ALTER TABLE `nama_tabel` ADD INDEX(`nama_field`)
_

Sedangkan untuk menghapus indeks, dapat digunakan query

ALTER TABLE `nama_tabel` DROP INDEX `nama_field`;

Query diatas dapat digunakan untuk Single Column Index sederhana, jika membutuhkan Multi-column index dengan konfigurasi lanjutan dapat dilihat pada dokumentasi MySQL. Buat Pernyataan Indeks

jika Anda adalah pengguna phpMyAdmin maka pembuatan indeks akan lebih mudah dilakukan. Pilih tabel yang akan diindeks, lalu klik menu tab Structure, lalu klik menu Other pada kolom yang akan diindeks

Apa itu indeks di mysql?

Menemukan Kueri Lambat

Permintaan yang lambat umumnya akan memakan waktu lama untuk diselesaikan. Untuk menemukan kueri yang lambat, Anda dapat memeriksa proses mysql dengan kueri

show processlist;

Hasil outputnya kurang lebih seperti di bawah ini

+-----+------+-----------------+------+---------+------+--------------+------------------------------------------------------------------------------------------------------+----------+
 | Id  | User | Host            | db   | Command | Time | State        | Info                                                                                                 | Progress |
 +-----+------+-----------------+------+---------+------+--------------+------------------------------------------------------------------------------------------------------+----------+
 |  70 | root | localhost       | NULL | Query   |    0 | starting     | show processlist                                                                                     |    0.000 |
 | 359 | root | localhost:50176 | test | Query   |    2 | Sending data | SELECT *  FROM table WHERE code LIKE 'xx' AND deleted_at IS NOT NULL                             |    0.000 |
 | 360 | root | localhost:50177 | NULL | Sleep   |    1 |              | NULL                                                                                                 |    0.000 |
 +-----+------+-----------------+------+---------+------+--------------+------------------------------------------------------------------------------------------------------+----------+
 3 rows in set (0.000 sec)
_

Cari proses yang paling lama dari hasil query, kemudian perhatikan di sebelah kanan terdapat informasi singkat tentang query yang sedang dikerjakan. Analisis kueri dengan baik sebelum memutuskan untuk menambahkan indeks

Bagi anda yang sering bermain dengan MySQL atau database pada umumnya pasti sudah tidak asing lagi dengan istilah PRIMARY KEY, UNIQUE dan INDEX. Namun, ternyata banyak orang yang belum mengetahui tentang ketiga hal tersebut. Apa perbedaan antara PRIMARY KEY dan UNIQUE?

Pada artikel kali ini, saya akan mencoba membahas secara tuntas apa yang dimaksud dengan kedua istilah di atas, disertai dengan contoh penerapannya agar tidak terkesan teoretis.

Pertama-tama, mari kita bicara tentang apa itu INDEX dalam database. Indeks ini sangat berguna untuk proses pencarian data. Jika sebuah tabel tidak memiliki indeks, maka proses pencarian data bisa memakan waktu lama (untuk jumlah data yang banyak). Analoginya misalkan kita akan mencari nomor telepon seseorang bernama 'Rosihan Ari Yuana' di buku telepon. Jika tidak ada indeks dalam buku tersebut, maka kita akan kesulitan untuk menemukannya, bahkan kita akan mencarinya di setiap halaman buku tersebut. Namun dengan adanya index, kita tidak perlu mencari di setiap halaman buku telepon, melainkan cukup mencarinya melalui index pemilik nomor telepon yang berawalan huruf 'R'. Dengan begitu prosesnya akan lebih cepat bukan? . Kita bisa mengatur sebuah field sebagai index sehingga proses pencarian data menjadi lebih cepat. Bagaimana cara melakukannya?

ALTER TABLE `namatabel` ADD INDEX (`namafield`);

Bagaimana bidang dapat ditetapkan sebagai INDEX?

Catatan. Tabel dapat memiliki lebih dari satu bidang yang ditetapkan sebagai indeks

Selanjutnya pada PRIMARY KEY dan UNIQUE. Dari segi fungsi atau kegunaan, PRIMARY KEY dan UNIQUE sama-sama digunakan untuk menjamin tidak terjadi duplikasi data pada field tertentu. Selain itu, keduanya sama-sama digunakan untuk tujuan pengindeksan. Dengan kata lain, field yang ditetapkan sebagai Primary Key atau Unique secara otomatis ditetapkan sebagai indeks, jadi kita tidak perlu lagi mengaturnya secara manual sebagai indeks.

Namun, ada perbedaan di antara keduanya. Bidang yang ditetapkan sebagai Kunci Utama, rekaman data dalam bidang tersebut tidak boleh NULL. Oleh karena itu, jika Anda menetapkan suatu bidang sebagai Kunci Utama, maka 'NO' akan secara otomatis muncul di kolom 'NULL' dalam struktur tabel. Anda dapat melihat ini di phpMyAdmin. Lihat contoh tabel 'siswa' yang terdiri dari field. NIM, NAMAMHS, ALAMAT dan NOSIM di bawah ini

Apa itu indeks di mysql?

Keterangan
Pada gambar di atas, field 'NIM' dapat diset sebagai Primary Key. Dalam kasus nyata, seorang siswa harus memiliki NIM (nomor induk siswa), NIM setiap siswa harus unik (tidak ada yang sama) dan tidak mungkin seorang siswa tidak memiliki NIM, jadi dalam database siswa ini, kami dapat mengatur NIM sebagai Kunci Utama (karena NIM tidak boleh NULL)

Bagaimana cara menetapkan bidang sebagai Kunci Utama?

ALTER TABLE `namatabel` ADD PRIMARY KEY (`namafield`);
_

Sedangkan UNIQUE, berbeda dengan Primary Key, data pada field yang diset Unique bisa jadi NULL

Contoh penerapan UNIQUE, misalnya dari tabel 'student' di atas, field 'NOSIM' bisa diset UNIQUE. Mengapa NOSIM dapat ditetapkan sebagai UNIK? . karena tidak ada nomor SIM yang sama atau unik, namun tidak semua orang khususnya pelajar dalam hal ini memiliki SIM. Jadi untuk NOSIM ini dimungkinkan NULL atau tidak terisi. Karena field NOSIM diset UNIQUE, jika ada data No. SIM yang akan dimasukkan sama (duplikat) maka proses entry ini gagal

Bagaimana cara mengatur bidang sebagai UNIK?

ALTER TABLE `namatabel` ADD UNIQUE (`namafield`);

Catatan. Tabel dapat terdiri dari beberapa bidang UNIK

Oke ada pencerahannya kan, apa itu PRIMARY KEY, UNIQUE dan INDEX?

Apa itu Indeks dalam pemrograman?

Indeks adalah objek dalam sistem database yang dapat mempercepat proses pencarian data (query) . Ketika sebuah database dibuat tanpa menggunakan indeks, kinerja server database bisa turun drastis.

Apa itu Indeks DB?

Indeks Basis Data . Tujuannya untuk mempercepat proses penentuan lokasi data tanpa melakukan pencarian menyeluruh terhadap seluruh data (full scan). struktur data yang berisi kumpulan keys beserta referensinya ke actual data di table. Tujuannya untuk mempercepat proses penentuan lokasi data tanpa melakukan pencarian secara penuh ke seluruh data (full scan).

Apa yang dimaksud dengan int 11?

Arti int ( 11 ) adalah nama tipe data yang merupakan bilangan bulat dan memiliki panjang 11 karakter.

Apa itu kunci utama di MySQL?

Fungsi Kunci Utama di MySQL . Hal ini penting dilakukan karena dapat menghubungkan suatu tabel dengan tabel lain yang berhubungan dengan primary key sebagai penghubung.