π’ 1. Pengertian Indexing pada MongoDB
π Pengertian Indexing
Indexing adalah teknik untuk mempercepat proses pencarian data dalam database dengan membuat struktur indeks tertentu pada field yang sering digunakan dalam query.
π Fungsi Indexing
- Mempercepat query
- Mengurangi scanning data
- Meningkatkan performa database
- Mengoptimalkan pencarian
- Mendukung sorting dan aggregation
πΌοΈ Ilustrasi Indexing Database
7
π Narasi
Tanpa indexing, MongoDB harus membaca seluruh document dalam collection (collection scan). Hal ini menyebabkan query menjadi lambat ketika jumlah data sangat besar.
π‘ 2. Konsep Dasar Cara Kerja Index
π Cara Kerja Index
Index bekerja seperti:
- Daftar isi buku
- Indeks pada kamus
- Mesin pencarian
MongoDB membuat struktur khusus untuk mempercepat akses data.
π Tanpa Index
Data β Scan seluruh collection β Temukan data
π Dengan Index
Index β Langsung menuju data
πΌοΈ Diagram Cara Kerja Index
7
π Narasi
Index mempercepat proses pencarian karena database tidak perlu membaca seluruh isi collection.
π‘ 3. Jenis-Jenis Index MongoDB
π Jenis Index Utama
| Jenis Index | Fungsi |
|---|---|
| Single Field Index | Index satu field |
| Compound Index | Gabungan beberapa field |
| Multikey Index | Untuk array |
| Text Index | Pencarian teks |
| Geospatial Index | Data lokasi |
| Hashed Index | Sharding |
πΌοΈ Infografis Jenis Index MongoDB
6
π Narasi
Setiap jenis index memiliki fungsi berbeda sesuai kebutuhan aplikasi dan struktur data.
π‘ 4. Single Field Index
π Pengertian
Index dibuat pada satu field tertentu.
π Contoh Membuat Index
db.mahasiswa.createIndex({
nama: 1
})
π Arti Nilai Index
| Nilai | Keterangan |
|---|---|
| 1 | Ascending |
| -1 | Descending |
π Menampilkan Index
db.mahasiswa.getIndexes()
πΌοΈ Diagram Single Field Index
7
π Narasi
Single field index merupakan jenis index paling sederhana dan paling sering digunakan.
π‘ 5. Compound Index
π Pengertian
Compound index dibuat menggunakan lebih dari satu field.
π Contoh Compound Index
db.mahasiswa.createIndex({
jurusan: 1,
semester: -1
})
π Fungsi Compound Index
- Query multi-field
- Sorting lebih cepat
- Filtering kompleks
πΌοΈ Diagram Compound Index
8
π Narasi
Compound index sangat efektif untuk aplikasi dengan query kompleks.
π‘ 6. Multikey Index
π Pengertian
Multikey index digunakan untuk field berbentuk array.
π Contoh Data Array
{
"nama": "Andi",
"hobi": ["Coding", "Gaming"]
}
π Membuat Multikey Index
db.mahasiswa.createIndex({
hobi: 1
})
πΌοΈ Diagram Multikey Index
7
π Narasi
Multikey index sangat penting pada aplikasi modern yang menggunakan data array.
π‘ 7. Text Index MongoDB
π Pengertian
Text index digunakan untuk pencarian teks seperti search engine.
π Membuat Text Index
db.artikel.createIndex({
judul: "text"
})
π Query Text Search
db.artikel.find({
$text: {
$search: "MongoDB"
}
})
πΌοΈ Diagram Text Index
8
π Narasi
Text index mendukung fitur pencarian cepat pada aplikasi berita, blog, dan e-commerce.
π‘ 8. Geospatial Index
π Pengertian
Geospatial index digunakan untuk data lokasi dan koordinat geografis.
π Contoh Penggunaan
- Google Maps
- Tracking kendaraan
- Aplikasi transportasi online
π Contoh Data Lokasi
{
"lokasi": {
"type": "Point",
"coordinates": [106.8, -6.2]
}
}
πΌοΈ Diagram Geospatial Index
7
π Narasi
Geospatial index memungkinkan pencarian lokasi secara cepat dan akurat.
π‘ 9. Query Performance MongoDB
π Pengertian Query Performance
Query performance adalah kecepatan database dalam memproses query.
π Faktor yang Mempengaruhi
- Jumlah data
- Jenis query
- Penggunaan index
- Hardware server
- Struktur data
π Collection Scan vs Index Scan
| Metode | Performa |
|---|---|
| Collection Scan | Lambat |
| Index Scan | Cepat |
πΌοΈ Diagram Query Performance
11
π Narasi
Tanpa optimasi yang baik, performa database dapat menurun drastis ketika data semakin besar.
π‘ 10. Explain Plan MongoDB
π Pengertian explain()
Explain digunakan untuk melihat cara MongoDB menjalankan query.
π Contoh explain()
db.mahasiswa.find({
nama: "Andi"
}).explain("executionStats")
π Informasi Explain
- Total documents scanned
- Execution time
- Index digunakan
- Query planner
πΌοΈ Diagram Explain Query
6
π Narasi
Explain membantu administrator database melakukan analisis performa query.
π‘ 11. Optimasi Query MongoDB
π Teknik Optimasi
Menggunakan Index
Projection Field
db.mahasiswa.find(
{},
{ nama: 1 }
)
Menggunakan limit()
db.mahasiswa.find().limit(10)
Filter Data Secara Efisien
db.mahasiswa.find({
jurusan: "Informatika"
})
πΌοΈ Diagram Optimasi Query
7
π Narasi
Optimasi query bertujuan mengurangi penggunaan resource server dan mempercepat akses data.
π‘ 12. Aggregation Performance
π Pengertian
Aggregation pipeline dapat mempengaruhi performa database.
π Optimasi Aggregation
- Gunakan $match di awal
- Gunakan projection
- Hindari data berlebihan
- Gunakan indexing
π Contoh Pipeline Efisien
db.mahasiswa.aggregate([
{
$match: {
jurusan: "Informatika"
}
},
{
$project: {
nama: 1
}
}
])
πΌοΈ Diagram Aggregation Optimization
8
π Narasi
Aggregation yang tidak optimal dapat menyebabkan penggunaan CPU dan RAM sangat tinggi.
π‘ 13. Sharding MongoDB
π Pengertian Sharding
Sharding adalah teknik membagi data ke beberapa server.
π Tujuan Sharding
- Skalabilitas horizontal
- Distribusi beban
- High availability
π Komponen Sharding
- Shard
- Config Server
- Router
πΌοΈ Diagram MongoDB Sharding
7
π Narasi
Sharding digunakan pada sistem dengan jutaan hingga miliaran data.
π‘ 14. Replication MongoDB
π Pengertian Replication
Replication adalah proses penyalinan data ke beberapa server.
π Tujuan
- Backup data
- Fault tolerance
- High availability
π Replica Set
- Primary Node
- Secondary Node
πΌοΈ Diagram MongoDB Replication
7
π Narasi
Replication memastikan sistem tetap berjalan meskipun terjadi kerusakan server.
π‘ 15. Monitoring Performa MongoDB
π Tools Monitoring
- MongoDB Compass
- MongoDB Atlas
- mongostat
- mongotop
π Contoh mongostat
mongostat
π Informasi Monitoring
- CPU usage
- RAM usage
- Query speed
- Network traffic
πΌοΈ Dashboard Monitoring MongoDB
8
π Narasi
Monitoring sangat penting untuk menjaga stabilitas dan performa database produksi.
π‘ 16. Studi Kasus Optimasi Database
π Kasus E-Commerce
Masalah:
- Query produk lambat
Solusi:
- Menambahkan index pada nama_produk
- Menggunakan pagination
π Kasus Media Sosial
Masalah:
- Feed loading lama
Solusi:
- Compound index
- Sharding database
πΌοΈ Studi Kasus Database Besar
7
π Narasi
Optimasi database menjadi kunci utama keberhasilan aplikasi modern berskala besar.
π’ 17. Kelebihan dan Kekurangan Index
π Kelebihan
- Query lebih cepat
- Optimasi aggregation
- Mendukung sorting
π Kekurangan
- Membutuhkan storage tambahan
- Memperlambat insert/update
- Maintenance lebih kompleks
πΌοΈ Infografis Index Database
9
π Narasi
Penggunaan index harus direncanakan dengan baik agar manfaat performa lebih besar dibanding overhead sistem.
π’ 18. Kesimpulan
π Ringkasan Materi
- Indexing mempercepat query database
- MongoDB memiliki berbagai jenis index
- Optimasi query meningkatkan performa sistem
- Sharding dan replication mendukung big data
- Monitoring penting pada database produksi
πΌοΈ Diagram Ringkasan Optimasi MongoDB
8
π― Latihan & Diskusi
- Apa yang dimaksud indexing?
- Jelaskan fungsi createIndex()!
- Apa perbedaan collection scan dan index scan?
- Jelaskan fungsi compound index!
- Apa kegunaan explain()?
- Mengapa monitoring database penting?
- Apa tujuan sharding?
- Jelaskan kelebihan dan kekurangan indexing!