<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="id">
	<id>https://cbtlmsts.my.id/wikits/index.php?action=history&amp;feed=atom&amp;title=Strategi_optimasi_query_dan_analisis_execution_plan</id>
	<title>Strategi optimasi query dan analisis execution plan - Riwayat revisi</title>
	<link rel="self" type="application/atom+xml" href="https://cbtlmsts.my.id/wikits/index.php?action=history&amp;feed=atom&amp;title=Strategi_optimasi_query_dan_analisis_execution_plan"/>
	<link rel="alternate" type="text/html" href="https://cbtlmsts.my.id/wikits/index.php?title=Strategi_optimasi_query_dan_analisis_execution_plan&amp;action=history"/>
	<updated>2026-08-29T16:38:32Z</updated>
	<subtitle>Riwayat revisi halaman ini di wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://cbtlmsts.my.id/wikits/index.php?title=Strategi_optimasi_query_dan_analisis_execution_plan&amp;diff=211&amp;oldid=prev</id>
		<title>Admin: /* Gunakan JOIN daripada Subquery jika memungkinka */</title>
		<link rel="alternate" type="text/html" href="https://cbtlmsts.my.id/wikits/index.php?title=Strategi_optimasi_query_dan_analisis_execution_plan&amp;diff=211&amp;oldid=prev"/>
		<updated>2025-05-12T17:54:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Gunakan JOIN daripada Subquery jika memungkinka&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;id&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Revisi sebelumnya&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revisi per 12 Mei 2025 17.54&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l63&quot;&gt;Baris 63:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Baris 63:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Gunakan JOIN daripada Subquery jika &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;memungkinka&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Gunakan JOIN daripada Subquery jika &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;memungkinkan&lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  --- Subquery (kurang efisien jika tidak ada indeks)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  --- Subquery (kurang efisien jika tidak ada indeks)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Baris 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Baris 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  JOIN pengambilan p ON m.nim = p.nim&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  JOIN pengambilan p ON m.nim = p.nim&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  WHERE p.kode_mk = &amp;#039;MK001&amp;#039;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  WHERE p.kode_mk = &amp;#039;MK001&amp;#039;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Studi Kasus: Bandingkan Kinerja Query==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Studi Kasus: Bandingkan Kinerja Query==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://cbtlmsts.my.id/wikits/index.php?title=Strategi_optimasi_query_dan_analisis_execution_plan&amp;diff=210&amp;oldid=prev</id>
		<title>Admin: ←Membuat halaman berisi &#039;==Tujuan Pembelajaran== Setelah mempelajari modul ini, mahasiswa diharapkan mampu: * Menganalisis performa query menggunakan EXPLAIN. * Menyusun strategi optimasi query. * Menggunakan indeks dan teknik penulisan query untuk mempercepat eksekusi.    ==Apa Itu Optimasi Query?==  Optimasi Query adalah proses penyusunan dan perbaikan perintah SQL agar berjalan lebih efisien, baik dari sisi waktu eksekusi maupun penggunaan sumber daya.    ==Analisis Query dengan EXPLA...&#039;</title>
		<link rel="alternate" type="text/html" href="https://cbtlmsts.my.id/wikits/index.php?title=Strategi_optimasi_query_dan_analisis_execution_plan&amp;diff=210&amp;oldid=prev"/>
		<updated>2025-05-12T17:54:02Z</updated>

		<summary type="html">&lt;p&gt;←Membuat halaman berisi &amp;#039;==Tujuan Pembelajaran== Setelah mempelajari modul ini, mahasiswa diharapkan mampu: * Menganalisis performa query menggunakan EXPLAIN. * Menyusun strategi optimasi query. * Menggunakan indeks dan teknik penulisan query untuk mempercepat eksekusi.    ==Apa Itu Optimasi Query?==  Optimasi Query adalah proses penyusunan dan perbaikan perintah SQL agar berjalan lebih efisien, baik dari sisi waktu eksekusi maupun penggunaan sumber daya.    ==Analisis Query dengan EXPLA...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Halaman baru&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Tujuan Pembelajaran==&lt;br /&gt;
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:&lt;br /&gt;
* Menganalisis performa query menggunakan EXPLAIN.&lt;br /&gt;
* Menyusun strategi optimasi query.&lt;br /&gt;
* Menggunakan indeks dan teknik penulisan query untuk mempercepat eksekusi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Apa Itu Optimasi Query?==&lt;br /&gt;
&lt;br /&gt;
Optimasi Query adalah proses penyusunan dan perbaikan perintah SQL agar berjalan lebih efisien, baik dari sisi waktu eksekusi maupun penggunaan sumber daya.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Analisis Query dengan EXPLAIN==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EXPLAIN&amp;#039;&amp;#039;&amp;#039; menunjukkan cara MySQL merencanakan dan mengeksekusi query.&lt;br /&gt;
&lt;br /&gt;
 EXPLAIN SELECT * FROM mahasiswa WHERE nama = &amp;#039;Andi&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
Contoh Output:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! id !! select_type !! table     !! type   !! possible_keys !! key   !! rows !! Extra&lt;br /&gt;
|-&lt;br /&gt;
| 1  || SIMPLE      || mahasiswa || ref    || nama           || nama  || 1    ||| Using index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Gunakan `EXPLAIN ANALYZE` (MySQL 8+) untuk analisis yang lebih rinci.&lt;br /&gt;
&lt;br /&gt;
==Strategi Optimasi Query==&lt;br /&gt;
&lt;br /&gt;
Gunakan SELECT Kolom Spesifik, Bukan SELECT *:&lt;br /&gt;
&lt;br /&gt;
 --- Kurang efisien&lt;br /&gt;
 SELECT * FROM mahasiswa;&lt;br /&gt;
&lt;br /&gt;
 --- Lebih efisien&lt;br /&gt;
 SELECT nim, nama FROM mahasiswa;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gunakan Indeks pada Kolom WHERE atau JOIN==&lt;br /&gt;
&lt;br /&gt;
 --- Menambahkan indeks untuk kolom yang sering dicari&lt;br /&gt;
 CREATE INDEX idx_nama ON mahasiswa(nama);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gunakan LIMIT untuk Batasi Data==&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM mahasiswa ORDER BY nama LIMIT 10;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hindari Fungsi di Kolom WHERE==&lt;br /&gt;
&lt;br /&gt;
 --- Kurang efisien karena fungsi dijalankan per baris&lt;br /&gt;
 SELECT * FROM mahasiswa WHERE YEAR(tanggal_lahir) = 2000;&lt;br /&gt;
&lt;br /&gt;
 --- Lebih efisien&lt;br /&gt;
 SELECT * FROM mahasiswa WHERE tanggal_lahir BETWEEN &amp;#039;2000-01-01&amp;#039; AND &amp;#039;2000-12-31&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gunakan JOIN daripada Subquery jika memungkinka==&lt;br /&gt;
&lt;br /&gt;
 --- Subquery (kurang efisien jika tidak ada indeks)&lt;br /&gt;
 SELECT nama FROM mahasiswa WHERE nim IN (&lt;br /&gt;
   SELECT nim FROM pengambilan WHERE kode_mk = &amp;#039;MK001&amp;#039;&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
 --- JOIN (lebih efisien jika ada index di pengambilan.nim)&lt;br /&gt;
 SELECT m.nama&lt;br /&gt;
 FROM mahasiswa m&lt;br /&gt;
 JOIN pengambilan p ON m.nim = p.nim&lt;br /&gt;
 WHERE p.kode_mk = &amp;#039;MK001&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Studi Kasus: Bandingkan Kinerja Query==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Query 1 (Tanpa Indeks)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM mahasiswa WHERE nama = &amp;#039;Andi&amp;#039;;&lt;br /&gt;
 --- EXPLAIN menunjukkan &amp;quot;type: ALL&amp;quot; = full table scan&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Query 2 (Dengan Indeks)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 CREATE INDEX idx_nama ON mahasiswa(nama);&lt;br /&gt;
 &lt;br /&gt;
 SELECT * FROM mahasiswa WHERE nama = &amp;#039;Andi&amp;#039;;&lt;br /&gt;
 --- EXPLAIN menunjukkan &amp;quot;type: ref&amp;quot;, &amp;quot;key: idx_nama&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tools Tambahan untuk Optimasi di Ubuntu==&lt;br /&gt;
&lt;br /&gt;
* EXPLAIN dan EXPLAIN ANALYZE  &lt;br /&gt;
* Performance Schema (aktifkan di `/etc/mysql/mysql.conf.d/mysqld.cnf`)  &lt;br /&gt;
* MySQL Tuner (command-line tool)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mysqltuner&lt;br /&gt;
 sudo mysqltuner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Kesimpulan==&lt;br /&gt;
&lt;br /&gt;
* Gunakan EXPLAIN untuk melihat bagaimana query dijalankan oleh MySQL.&lt;br /&gt;
* Gunakan indeks pada kolom yang sering digunakan dalam WHERE, JOIN, atau ORDER BY.&lt;br /&gt;
* Hindari `SELECT *`, fungsi di kolom WHERE, dan subquery tidak efisien.&lt;br /&gt;
* Kombinasi indeks + penulisan query yang benar bisa meningkatkan performa hingga 10x lipat atau lebih.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pranala Menarik==&lt;br /&gt;
&lt;br /&gt;
* [[Database: Kuliah]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>