INDEX DAN OPTIMASI QUERY


1. Pengertian Index dan Optimasi Query

https://images.openai.com/static-rsc-4/sGhnhL8sttA-71oveZOVKecj9er4TeRhLHy4nrFFXTz6X0f6sUnUThyiEONtdoqcRlx1ILTb26b2LAz6gIWssSnWjILO1zPQlacsYxHvqM51WhOrCcnqggEnCThjYHNQuZYrJ7Q1ZS6v-a4Va-rSMyemLpYBauOVReADzp3dHTx9erfb4DJUaVYaSQJiR8V8?purpose=fullsize
https://images.openai.com/static-rsc-4/AD5YVAcEb2dul0IoKds7tZjsLFpW223PceLEmIO7u0P6j-3Owc7-biQ1rUIVPHUfA6vt3GtN4_jCmI96V9XQCe8PasZgT6mYLXzsUuj9OxnETRmR2hlvPkt5OyGuOuqy7Nz36_sY2hUgH5Urit64I-glhkU9jKFuSdyEdTB5EcD2DCk2OfPnZmW3jMjQcmLJ?purpose=fullsize
https://images.openai.com/static-rsc-4/pY4b4mh1dD1r7xN6suQ5tuXREr2L34O3PdFYfR_nfGC4Mlm-skpRcLAKjdqFHFaV6AvKLjWzoSvecDwhamgz1CtB_MWee6JLVeVkVdwriwvzbEuxasJ5u_xp_1Zl0eenLqgiZbghfePhc1kA3MiegNrW7BQXKaq65zn68z_SmXLHlCCy2P8THrU8QyFnXoHi?purpose=fullsize

6

πŸ“– Deskripsi

  • Index adalah struktur data yang digunakan untuk mempercepat pencarian data dalam tabel.
  • Optimasi query adalah proses untuk meningkatkan performa query SQL agar lebih cepat dan efisien.

🧠 Narasi Penjelasan

Bayangkan index seperti daftar isi buku:

  • Tanpa index β†’ harus baca semua halaman
  • Dengan index β†’ langsung ke halaman yang dicari

πŸ‘‰ Optimasi query memastikan database bekerja lebih efisien.


2. Mengapa Index Diperlukan?

https://images.openai.com/static-rsc-4/pY4b4mh1dD1r7xN6suQ5tuXREr2L34O3PdFYfR_nfGC4Mlm-skpRcLAKjdqFHFaV6AvKLjWzoSvecDwhamgz1CtB_MWee6JLVeVkVdwriwvzbEuxasJ5u_xp_1Zl0eenLqgiZbghfePhc1kA3MiegNrW7BQXKaq65zn68z_SmXLHlCCy2P8THrU8QyFnXoHi?purpose=fullsize
https://images.openai.com/static-rsc-4/c1Dv5t_VB-4UyYRyIRTFczTTeeN4V8D0tlcGhGaPqebq-DIm5_gG3qUrSjxursKz0Yu-nuVE2Ctn-1U5m6jlct8d-dmFxdyd5cOXiCwSTy4safwrYPQ-iu8kQFUN1MX4k8NUMV3fZo9YaKAw2r4Z3B9noEgO8aY7nDToqbXl91SOQ2ir0B-5JgWDjm7_wBcU?purpose=fullsize
https://images.openai.com/static-rsc-4/JhUUqV1qMYlf8-JzBdMt2FD3fjDK73Ngj-j_IKn7XrREymIBAPHfQFH0hOewIiS0e0gRCs224hxgs-1PIhg-bQFzi8UhmIPwyt6bRvKsfEY2_FklwMIgOquJHowtkqufN7bOkuOsXyeIXVLt7fhwp1YIajnkRHx2agavy5l09rTYWQ1o-xoBU53pI5pT4mus?purpose=fullsize

8

πŸ“– Deskripsi

Index digunakan untuk meningkatkan kecepatan akses data.

🧠 Narasi Penjelasan

Tanpa index:

  • Query lambat
  • Scan seluruh tabel

Dengan index:

  • Query lebih cepat
  • Hanya mencari bagian tertentu

3. Cara Kerja Index

https://images.openai.com/static-rsc-4/SAVImKiZwnB6MwL0zXgE3o3h9kMeCN6Y41vrJeFGwLmaN8pqldPq0Vpfg_PfEWhcj4JSbWoM4znisDVKzJ8V2zzsTVXI3vbCr1via_NBhGAl-_rTb5bWL9uulJLAilJI4qw-v9hSzNeNVWT_hVbho-4tx3YZ0g4djC8gft0Xo4RxU6UtDUay-DreEMFoiC0j?purpose=fullsize
https://images.openai.com/static-rsc-4/xkG7-6BtfJX-UckkdmJermr9zFkScNxo5wRimnzDSRtF9foTlnPAOxcBsiLk743D8l_zzCjM_yfeeKX_-BqgsHQ-pyzqJnsvEt31vFDBJ3wKl6qIu2sPZKSoGc1RL4M6L2LZu02-Twbnv1hMSOOi7KL7VXOFhZRJEp6Xm2xMSAoEiOuAGX1Oge8GZ5vR9WDW?purpose=fullsize
https://images.openai.com/static-rsc-4/kgus8vx0VMGrdxQPQ7Zc348Y_pcuPoMRCz6W-eVcTrYp0YNulOordr60XIdNDdI93TdZZ174JZ-GJ68oFzP5YYl1PLuwPWOYE9v48nDLeLMFxrtArwkw_0Zp31d8_GxwwMP8qVUQicB1UWDp_a3b8YiWNpM_oGadz1eaWQqSJllOXdC5hzZ6H8_LpVvF3LKz?purpose=fullsize

8

πŸ“– Deskripsi

Index bekerja menggunakan struktur seperti pohon (B-Tree).

🧠 Narasi Penjelasan

  • Data disusun secara terurut
  • Pencarian menggunakan percabangan

πŸ‘‰ Proses menjadi lebih cepat dibanding linear search.


4. Jenis-Jenis Index

https://images.openai.com/static-rsc-4/OAxGHmE5TkshUu3DrI2llIM2Nj6xxBMAT2Uoeg1WPAvl_DgMH0d4qrt0Q55SlofliV3VlZFSLNFHk8atKoRl-byT445V92UIScJ5_hfIpeNiPVhFvDskRQplOHUhP0KWJSuMvbVt3NawWzHl_r_3Jv40autj900z8rn3bhJJ3FIFTWh1SAVMZrFxENwftkPr?purpose=fullsize
https://images.openai.com/static-rsc-4/9H1s5PQJY9ZHYzR82jVDcB6UVl_PtADk43KHm5yQym2B_g12wV47DmbsE-4hKvJbaj7Yet5VxX05vcsucJmiAhL6Aw498EuN29MrPy_pAw6mS8RO3Wee8JG1yMSf1gJfr9Aq6_k8xSUbW9Urjxczv2a2hqTDuvhYjiWnNDzEKht9YN8Ya3_xbvXBdN1m_eJ_?purpose=fullsize
https://images.openai.com/static-rsc-4/wlDWPJRqgCpzEiiB7SvEadoH1hEX2Av4zKQ1yvbRy5-3BQXZYFQw4oMdQO3ohhDjOKYUhdGbnV7aaIMx2K8XPlTofMXd0-XvO48WzqoNaIbxii17cd2uc4pyKUu-ZvIG_4cAJH5LFXarLkWnY-E6nvWVazjsvzBULy1eMqE3wJg0Eh6zzCtPm-VJ8UW3yvA1?purpose=fullsize

7

πŸ“– Deskripsi

Terdapat berbagai jenis index.

πŸ“Š Tabel:

Jenis IndexFungsi
Primary IndexBerdasarkan primary key
Unique IndexNilai unik
Composite IndexLebih dari 1 kolom
Fulltext IndexPencarian teks

5. Membuat Index

https://images.openai.com/static-rsc-4/c1Dv5t_VB-4UyYRyIRTFczTTeeN4V8D0tlcGhGaPqebq-DIm5_gG3qUrSjxursKz0Yu-nuVE2Ctn-1U5m6jlct8d-dmFxdyd5cOXiCwSTy4safwrYPQ-iu8kQFUN1MX4k8NUMV3fZo9YaKAw2r4Z3B9noEgO8aY7nDToqbXl91SOQ2ir0B-5JgWDjm7_wBcU?purpose=fullsize
https://images.openai.com/static-rsc-4/7-1Hfx5AVU-6kDklhgAnUQzBSRgg6-HlFEVg7mF035Ngjm1kZ87NZEKMyl5IH1s9RhkOcGPrtGDK6TLaiqfl7U2GMWof1VUqf14UtMYbgFnkauOtm_c9HIQD5uGvjx_2lSlJboZ1VA5YZ0gzTH28cc7O1vJXvPojmYl3uSJ9I6TROlaW4BxPiqMc9bj4s0Pl?purpose=fullsize
https://images.openai.com/static-rsc-4/zh2YbDKlkAvk-JNpnIMoLCkjEK2u0IyawProBGtRMhgSM5ZejuHAEQL9ZL481LtBZNG1yUJH6tET5aGbYUb3tqrjAJIqXGiIz2s86ClNB5I09AZUM1xRS4RdjxglhumbHVwweDsXKfwejTCG5eCnV8A7nggZFXUm5fAzX6YirkzIOTq7Thll5NG-26bvI6Sp?purpose=fullsize

6

πŸ“– Deskripsi

Index dibuat menggunakan perintah SQL.

🧠 Narasi Penjelasan

CREATE INDEX idx_nama
ON mahasiswa(nama);

πŸ‘‰ Index akan mempercepat pencarian berdasarkan kolom nama.


6. Menghapus Index

https://images.openai.com/static-rsc-4/4M6e37Px3N77cbxEDIbiD7x-TWZwOyqdPBx6nS8Acx6p9qBlx6fC8RYIhDQy9ZYYUjSfk71VR24NnLBi_5iLl8xKrHyZz89ZDw9xbpj210duUIttEQgWuh3C55f5pjX6cIVFrCocijI75WcfkXNwFGMcdqNYEGeuu0pTyzIS0KmP1pvip8rltXkcnITjKaUK?purpose=fullsize
https://images.openai.com/static-rsc-4/sdHFYUebCeVyfH6SLCduzdK_lYJMqR4LvAubbfN0byjffAjsKkZjssRuCvc5a1aTL68ipLcREI1XDSi1V9VDuD_pU2J5U4RAxRnHBg42eaKbvBqX-eK5XgmIz2pjvOgfWEKIrV1JlTwiCUTrmVLwliHMblNK4F87iUep7K4RnIgypNkoZD7mBLPcjkqjn8ik?purpose=fullsize
https://images.openai.com/static-rsc-4/nQvknM3F-lWD3hKb8qK9LwRMBYgMCF6GFINv3rBatyefItnwMYUr-K_ym2DqWbKpQV0LAUWSiWq-vOHFkhfEj_vxT35Wo4Iltl82zgc7tg5oXnel83owXWtqJdOwIQ8aghrWQtMJ5b88fifWqQpkjW9e-WlgXlSlHs5oagsGTdbtWKUbMURtYbmyOM1tzb5t?purpose=fullsize

9

πŸ“– Deskripsi

Index dapat dihapus jika tidak diperlukan.

🧠 Narasi Penjelasan

DROP INDEX idx_nama ON mahasiswa;

7. Kelebihan dan Kekurangan Index

πŸ“Š Tabel:

KelebihanKekurangan
Query cepatMemakan storage
EfisienMemperlambat INSERT/UPDATE

8. Konsep Query Optimization

https://images.openai.com/static-rsc-4/mHOvIfynpCulDKFDxGtZ1HCGEbTQUPx81XfH-jq_gPAtynVI7qGLWK2ym3A7tf4UfNEehryk76BaEzbTLdV-11XzB5NHQTZYw0vi2ym_piuW4qBnC8i-iTR-RdqLZZkCmLGdIg2mltnlDOwTpOqFi-mEDCwarJS3aJIM-EMZ1h5VDRa79eRI1j1bjywWVYEO?purpose=fullsize
https://images.openai.com/static-rsc-4/LHFLsXz4eR58Ehi_IOfCqRH63VijDXG3ijmIPGxiorbtwbuP8qasROBBo4VaJ80JYOUji2O3oz8hrAp3gpRi5w7ZWqKJI8v3LaRXGeN14w1lKJsaMPmpvQKxXkzQykDba8qsool9X3KpUrLGk3EJbY7BEGQU7FTAKGtW7lrPgqi2tXJ7J17NR1B2H_CYzZHM?purpose=fullsize
https://images.openai.com/static-rsc-4/NFMbxnD5cOB0tuoMdAex1zS3DOhmCUdpAyH5lL06refIf5zjpRqElODO-0UEXoe-dhoHhTd07iiJqjw5EnwyLBFdPpM_xLi3SxP43gdjnay_q4oFtAId3RsTiNTomk4TleEIQ7yEMAphYzW_FJDVX04IFnZc2PRZUsMiaHnVjFp2OViMwBwbr8R82TAJ41Cs?purpose=fullsize

6

πŸ“– Deskripsi

Optimasi query bertujuan meningkatkan performa.

🧠 Narasi Penjelasan

Melibatkan:

  • Struktur query
  • Penggunaan index
  • Perencanaan eksekusi

9. EXPLAIN (Analisis Query)

https://images.openai.com/static-rsc-4/MoH_ar-EtwO3YTAwPaela9QNcvoHdxLWLJ9ytzgmesF1WkZhkQGk9YC4yTm6iFkaCtGqh86A1qpolDzQadsVjIdJ9iQge80Zzb1tQlSsG4XLtoDTjwB517-GSiOCjphK5G-B994PMe0Z6iJMZX06Z3fGIQvjgojbj7P0k_9w9xzeAeoJY7McQiemWLuwF7g0?purpose=fullsize
https://images.openai.com/static-rsc-4/q1-jXs1xebCZSerwGM3RKNZknQi0k3sICMt-0KwPpXiEiXNXbTuDiH8Ed3ZaYnd8ESYAcUyuouO59GN7sQOMHm_GANG4cPGFYyIItqxFzF5omCaub_qKgf1M7b0ALMyVBNxekv7EvM3q4U1ZAtHy78YTcx8sK_kUx1dM3GZE-cegmzxGOoolNQrFZ119wTPn?purpose=fullsize
https://images.openai.com/static-rsc-4/rijm_N9MBL-zfpUvRY2uR9npWAFH0BOej-Y8SnY203EbgC_cwZHs42cBXVD75GgLsWt5RSareMJzkQ7WdIL1WbbCs2NgAXQNvRJ8pZ1w9XyasDNPwinwMiHf44XxXyFRJB032S76G1oZD0LBpmZe_5Dw1L3iFBg8SqdWZyvi8zrD_PuNMomzKZQNUwZWvCnD?purpose=fullsize

7

πŸ“– Deskripsi

Digunakan untuk melihat cara kerja query.

🧠 Narasi Penjelasan

EXPLAIN SELECT * FROM mahasiswa WHERE nama = 'Ahmad';

πŸ‘‰ Menampilkan rencana eksekusi query.


10. Teknik Optimasi Query

https://images.openai.com/static-rsc-4/eSqWfCv8lTLN4KJF7kR7HKBluZ0wj1BXQgq3QdF_8bkxYTi_c8fsy8tyhvghF4ZhWMbXpqoyTUkktSItKOgWVi2uck-gRxNLMxfXEeAsTWg6eyH8hrt3f8L1JLwabyd0nNUZpYtyLy-as2kvOcPdatI9aD406CDAbmvxxgZ22gxiyE0FWFjbCRkA1Q6SJgKI?purpose=fullsize
https://images.openai.com/static-rsc-4/LHFLsXz4eR58Ehi_IOfCqRH63VijDXG3ijmIPGxiorbtwbuP8qasROBBo4VaJ80JYOUji2O3oz8hrAp3gpRi5w7ZWqKJI8v3LaRXGeN14w1lKJsaMPmpvQKxXkzQykDba8qsool9X3KpUrLGk3EJbY7BEGQU7FTAKGtW7lrPgqi2tXJ7J17NR1B2H_CYzZHM?purpose=fullsize
https://images.openai.com/static-rsc-4/Kp6x-YK80tD_TOO-0PxoeWAKi4127hBrcAgabQK1piZN4U4JGvanzeXdYl-3o5pN1olyNA_R_V3ve3njmoVEJTsaTlbJoPSTUbU4BN2Qki_znosBLnUdtw8KC2BkhK20T0hQEkSOu373O8dEssMbl7jKmDt8jOEioNSLtNsy2N3HUAkMDwKZaYCc7_i66Jgd?purpose=fullsize

6

πŸ“– Deskripsi

Strategi untuk meningkatkan performa query.

🧠 Narasi Penjelasan

  • Gunakan index
  • Hindari SELECT *
  • Gunakan WHERE
  • Gunakan JOIN dengan tepat

11. SELECT * vs SELECT Kolom

https://images.openai.com/static-rsc-4/K3cyLbnCk53SgcjSyXR48FqvS_L6f1LYvMKeJEC5s3SmTjJ0wAgRc-kUnE2Q6V4I2smfkMmuI_QaoQau_KloAAHSlofydUDA-E-XN_25A1D5zs06COOMKlPrdc19NIg84mcKd9lXb_LECnTWWhQltDDvKUAdE2UPq1iaCvNDTBMnGt4Cahgf2Q6V4P89IvaX?purpose=fullsize
https://images.openai.com/static-rsc-4/K7q2hCzB6vEwuyALigDye11gxNDJo5xZGH2Aea3BWJMwIZpTgzlq4zCSroX_zwL8C-Mst7R_j6a15eTDAWXNHCgyLPIFoj__LauF8rQSQOB43P8Nh48oAVVfp875Zf9udYcB4YCHpen3zf0B5oXrDEvVm0RD_r5EKRrGazAsUbi_hzOYa2cIstmQfcGBVqWy?purpose=fullsize
https://images.openai.com/static-rsc-4/vF1RziKB0QgLA8CszYN-DRMTOdS-K8JFjAYxjKqfg5Sv7GQMkavyPoByV9zINR8PSTzap_aIPf-0F1kZYzqyNPFVOVRbDqcbSJKTs6LCsHR8WAczjq1A_HQ3l3ug2th3A-4Rrtprnvgeytzk69biUDeG1JdwzaccnBlGea1zuyKGrxwFgZDC3Rwu4JWYOJ3p?purpose=fullsize

7

πŸ“– Deskripsi

Pemilihan kolom mempengaruhi performa.

🧠 Narasi Penjelasan

SELECT nama FROM mahasiswa;

πŸ‘‰ Lebih cepat dibanding SELECT *.


12. Penggunaan WHERE yang Efisien

https://images.openai.com/static-rsc-4/LHFLsXz4eR58Ehi_IOfCqRH63VijDXG3ijmIPGxiorbtwbuP8qasROBBo4VaJ80JYOUji2O3oz8hrAp3gpRi5w7ZWqKJI8v3LaRXGeN14w1lKJsaMPmpvQKxXkzQykDba8qsool9X3KpUrLGk3EJbY7BEGQU7FTAKGtW7lrPgqi2tXJ7J17NR1B2H_CYzZHM?purpose=fullsize
https://images.openai.com/static-rsc-4/jje6w1Qq0TZsj5p50Gl2t2mjs6VYiEmT75HjNk1kO5fFvp0G0y1sRITReqnvKLMklv80G-31ZrOMfHeX3o_qZBlOH8eJdlSBLTd8F1Ew3bG9K1HHBY6aKjR4VX8rQx2xfOVHL3yoQvPYh3MUjS1P7mUO-hSCDicE4RnEAlkbj3T2IPCi-EmLBoNMgPXNaECr?purpose=fullsize
https://images.openai.com/static-rsc-4/K3cyLbnCk53SgcjSyXR48FqvS_L6f1LYvMKeJEC5s3SmTjJ0wAgRc-kUnE2Q6V4I2smfkMmuI_QaoQau_KloAAHSlofydUDA-E-XN_25A1D5zs06COOMKlPrdc19NIg84mcKd9lXb_LECnTWWhQltDDvKUAdE2UPq1iaCvNDTBMnGt4Cahgf2Q6V4P89IvaX?purpose=fullsize

7

πŸ“– Deskripsi

WHERE membantu mempercepat query.

🧠 Narasi Penjelasan

πŸ‘‰ Gunakan kondisi yang tepat agar index bekerja.


13. Studi Kasus Optimasi

https://images.openai.com/static-rsc-4/GkkBGc3uTloOjqko9zNNQMsV3X-XqO8XQeOl6jNDhzsE5meMOXkr5a76buU6XXuaUh3gcloskiaqK1PWYDhRcXC-7anVmB0J2key0S_EabOJ3EzDRW_msl9RDH7Lp_5rUQJ1aLBdU647uVVA5riHFqkEnjWD4Ep8D833s1QgFrKubOgCfVuoAJ-3KGqej3yH?purpose=fullsize
https://images.openai.com/static-rsc-4/LHFLsXz4eR58Ehi_IOfCqRH63VijDXG3ijmIPGxiorbtwbuP8qasROBBo4VaJ80JYOUji2O3oz8hrAp3gpRi5w7ZWqKJI8v3LaRXGeN14w1lKJsaMPmpvQKxXkzQykDba8qsool9X3KpUrLGk3EJbY7BEGQU7FTAKGtW7lrPgqi2tXJ7J17NR1B2H_CYzZHM?purpose=fullsize
https://images.openai.com/static-rsc-4/fSmwSt1HZYlVhcoyAQEhXOmcYABkOEUJl-O63ZdCc0luA_uy-pJ13JO6i33Bv_4LtDxoZVo43dOMwfyKLE8jnPf4ceaItT_6HrSoqeJ-hKK_gtBdeTc-EWU4VmCIy_SoVsx6marMWKK0Cogm4RetsoUwW915WPCkyRaRQAl_qj_RAnQMD4AY-jBvIH9HC7e5?purpose=fullsize

8

πŸ“– Deskripsi

Contoh penerapan optimasi.

🧠 Narasi Penjelasan

  • Tanpa index β†’ lambat
  • Dengan index β†’ cepat

14. Best Practice Indexing

πŸ“– Deskripsi

Praktik terbaik dalam penggunaan index.

🧠 Narasi Penjelasan

  • Gunakan pada kolom yang sering dicari
  • Hindari terlalu banyak index
  • Gunakan composite index bila perlu

15. Ringkasan Materi

πŸ“– Deskripsi

Inti pembelajaran.

🧠 Narasi Penjelasan

  • Index mempercepat pencarian
  • Optimasi query meningkatkan performa
  • Kombinasi keduanya sangat penting

16. Kesimpulan

  • Index dan optimasi query sangat penting dalam database besar
  • Meningkatkan performa sistem secara signifikan
  • Wajib dipahami oleh developer dan DBA

🎯 LATIHAN / DISKUSI

  1. Apa itu index?
  2. Mengapa index mempercepat query?
  3. Apa fungsi EXPLAIN?

πŸ“ TUGAS

  • Buat tabel mahasiswa
  • Tambahkan index
  • Bandingkan query:
    • Dengan index
    • Tanpa index