Mengenal Indeks (Indexing) pada MySQL
Indexing di MySQL adalah mekanisme untuk mempercepat pengambilan data dari tabel dengan membuat struktur data khusus yang memungkinkan query berjalan lebih efisien. Berikut adalah tipe-tipe indeks yang umum digunakan di MySQL:
1. PRIMARY KEY
- Deskripsi: Indeks unik yang tidak boleh memiliki nilai duplikat atau NULL.
- Penggunaan: Digunakan untuk mengidentifikasi setiap baris secara unik dalam tabel.
- Karakteristik:
- Setiap tabel hanya bisa memiliki satu primary key.
- Secara otomatis diindeks oleh MySQL.
- Contoh:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) );
2. UNIQUE INDEX
- Deskripsi: Indeks yang memastikan bahwa nilai dalam kolom atau kombinasi kolom bersifat unik.
- Penggunaan: Membatasi duplikasi data.
- Karakteristik:
- Memungkinkan nilai NULL (berbeda dari PRIMARY KEY).
- Banyak UNIQUE INDEX dapat diterapkan pada tabel yang sama.
- Contoh:
CREATE TABLE products ( product_id INT AUTO_INCREMENT, sku VARCHAR(50) UNIQUE, PRIMARY KEY (product_id) );
3. INDEX (Normal Index)
- Deskripsi: Indeks dasar yang hanya digunakan untuk mempercepat pencarian.
- Penggunaan: Membantu query SELECT menjadi lebih cepat, tetapi tidak menjamin nilai unik.
- Karakteristik:
- Bisa diterapkan pada satu kolom atau beberapa kolom.
- Tidak menghindari duplikasi nilai.
- Contoh:
CREATE INDEX idx_name ON employees(name);
4. FULLTEXT INDEX
- Deskripsi: Digunakan untuk pencarian teks penuh (full-text search) pada kolom yang berisi teks panjang.
- Penggunaan: Cocok untuk kolom seperti artikel, deskripsi, atau konten.
- Karakteristik:
- Hanya tersedia untuk tabel dengan tipe MyISAM, InnoDB (mulai MySQL 5.6), dan NDB Cluster.
- Mendukung query seperti
MATCH ... AGAINST
.
- Contoh:
CREATE TABLE articles ( id INT AUTO_INCREMENT PRIMARY KEY, content TEXT, FULLTEXT (content) );
5. SPATIAL INDEX
- Deskripsi: Digunakan untuk indeks data geometris (spasial).
- Penggunaan: Cocok untuk aplikasi yang memerlukan data geografis, seperti peta.
- Karakteristik:
- Hanya tersedia pada tabel MyISAM dan InnoDB (MySQL 5.7+).
- Digunakan dengan tipe data geometris seperti
POINT
,LINESTRING
, atauPOLYGON
.
- Contoh:
CREATE TABLE locations ( id INT AUTO_INCREMENT PRIMARY KEY, coordinates GEOMETRY NOT NULL, SPATIAL INDEX (coordinates) );
6. COMPOSITE INDEX
- Deskripsi: Indeks yang mencakup lebih dari satu kolom.
- Penggunaan: Membantu mempercepat query yang memfilter atau mengurutkan berdasarkan beberapa kolom.
- Karakteristik:
- Urutan kolom dalam indeks memengaruhi efektivitasnya.
- Contoh:
CREATE INDEX idx_composite ON orders(customer_id, order_date);
7. FOREIGN KEY (Index Terkait Relasi)
- Deskripsi: Membuat hubungan antara tabel dengan menerapkan constraint di kolom tertentu.
- Penggunaan: Digunakan untuk memastikan referensi valid antara tabel utama dan tabel terkait.
- Karakteristik:
- Secara implisit menghasilkan indeks pada kolom foreign key.
- Contoh:
CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
8. CLUSTERED INDEX (Terkait InnoDB)
- Deskripsi: Secara internal, InnoDB menyimpan data tabel berdasarkan indeks PRIMARY KEY.
- Penggunaan: Data tabel secara fisik diurutkan berdasarkan clustered index.
- Karakteristik:
- Tabel hanya dapat memiliki satu clustered index.
- Jika tidak ada PRIMARY KEY, InnoDB akan membuat indeks unik secara otomatis.
- Catatan: Tidak dapat didefinisikan secara eksplisit di MySQL.
9. NON-CLUSTERED INDEX
- Deskripsi: Indeks tambahan yang digunakan untuk mempercepat pencarian tanpa memengaruhi penyimpanan fisik data.
- Penggunaan: Memungkinkan pencarian data tanpa mengganggu pengurutan data utama.
Memilih Indeks yang Tepat:
- PRIMARY KEY untuk identifikasi unik.
- UNIQUE INDEX untuk memastikan tidak ada data duplikat.
- FULLTEXT INDEX untuk pencarian teks kompleks.
- SPATIAL INDEX untuk data geografis.
- COMPOSITE INDEX untuk query yang melibatkan beberapa kolom.
Indeks mempercepat pencarian tetapi dapat memperlambat operasi seperti INSERT
, UPDATE
, dan DELETE
. Gunakan dengan bijak sesuai kebutuhan!
Cari
Recent Comments
- Hati-hati ya terhadap jerat penipuan love scam on
- Cara Connect ke Server SSH Menggunakan SSH Key on
- Install WhatsApp pada Windows on
- Langkah install dan konfigruasi CMS laravel pada komputer lokal on
- Mudahnya membuat aplikasi android dengan Ionic on
Categories
- ajax (20)
- Android (8)
- Artificial Intelegence (1)
- internet (6)
- internet business (48)
- Linux (45)
- Mobile (28)
- Open Source (82)
- Portfolio (54)
- Programming (69)
- Uncategorized (29)
- Web 2.0 (70)
- websites (92)
- Windows (24)
Tags
aplikasi website
bisnis online
blog
browser
buat web
cloud computing
cloud storage
dropbox
e-newsletter
google
internet
jasa pembangunan website
jasa pembuatan website
kampanye website
Linux
mass mail
membuat blog
membuat website
mounting
mysql
newsletter
opensource
pembangunan website
pembuatan website
php
Portfolio
programming
promosi website
SEO
seo campaign
ssh
stie
template website
tips dan trik berbisnis online
tips dan trik SEO
toko online
ubuntu
web 2.0
web design
web hosting
webserver
website
website murah
website promotion
wordpress
Partners