Tentukan bidang yang diperlukan dalam SELECT
kueri
Alih-alih memilih semua bidang dalam SELECT
kueri, pilih saja bidang yang diperlukan untuk mengurangi beban dan meningkatkan kecepatan kueri.
Misalnya, jika Anda hanya mementingkan nama dan alamat pelanggan, ganti kueri:
SELECT * FROM customers;
dengan
SELECT name, address FROM customers;
Buat indeks
Index
membantu MySQL
mencari dan mengambil data lebih cepat. Identifikasi bidang yang sering digunakan dalam WHERE
, JOIN
, atau ORDER BY
klausa dan buat indeks untuk bidang tersebut.
Misalnya, dalam orders
tabel " ", jika customer_id
bidang " " sering digunakan dalam WHERE
atau JOIN
kueri, Anda dapat membuat indeks sebagai berikut:
CREATE INDEX idx_customer_id ON orders(customer_id);
Gunakan jenis indeks yang sesuai
MySQL
menyediakan berbagai jenis indeks seperti B-tree
, hash, dan full-text
. Pilih jenis indeks yang sesuai berdasarkan persyaratan kueri Anda untuk memastikan kinerja yang optimal.
Misalnya, jika Anda perlu mencari teks dalam bidang data, Anda dapat membuat full-text
indeks sebagai berikut:
CREATE FULLTEXT INDEX idx_description ON products(description);
Optimalkan kueri
Gunakan EXPLAIN
untuk melihat rencana eksekusi kueri dan menganalisis bagaimana MySQL
kinerjanya. Ini membantu Anda mengidentifikasi masalah kinerja dan mengoptimalkan kueri dengan menggunakan indeks atau menulis ulang kueri.
Misalnya, untuk melihat rencana kueri kueri SELECT
, jalankan perintah berikut:
EXPLAIN SELECT * FROM orders WHERE customer_id = 123;
Batasi jumlah hasil yang dikembalikan
Saat kueri mengembalikan hasil dalam jumlah besar, batasi jumlah hasil yang dikembalikan menggunakan LIMIT
klausa. Ini membantu mengurangi beban dan meningkatkan kecepatan kueri.
Misalnya, untuk hanya mengembalikan 10 hasil dari tabel "produk", Anda dapat menggunakan kueri berikut:
SELECT * FROM products LIMIT 10;
Gunakan INNER JOIN
sebagai gantinya JOIN
INNER JOIN
berkinerja lebih baik dari biasanya JOIN
. Gunakan INNER JOIN
saat Anda hanya peduli dengan rekaman yang memiliki kecocokan di kedua tabel.
Misalnya, untuk menggabungkan tabel " orders
" dan " customers
" berdasarkan customer_id
bidang " ", Anda dapat menggunakan kueri berikut:
SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;
Gunakan tabel sementara dengan hati-hati
Tabel sementara dapat digunakan dalam kasus tertentu, tetapi harus digunakan dengan hati-hati karena dapat memperlambat kueri. Pertimbangkan untuk mengoptimalkan kueri untuk menghindari penggunaan tabel sementara jika memungkinkan.
Misalnya, alih-alih menggunakan tabel sementara dalam kueri berikut ini:
CREATE TEMPORARY TABLE temp_table SELECT * FROM products;
Anda dapat mencoba mengoptimalkan kueri untuk langsung meminta data dari tabel asli.
Sempurnakan konfigurasi MySQL
Pertimbangkan untuk mengonfigurasi ulang MySQL untuk memaksimalkan sumber daya sistem dan menyelaraskan dengan persyaratan aplikasi Anda. Ini termasuk mengonfigurasi memori, ukuran buffer, batas koneksi, dan parameter lainnya. Lihat dokumentasi MySQL dan pelajari cara menyesuaikan konfigurasi agar sesuai dengan lingkungan khusus Anda.
Hapus data yang tidak perlu
Hapus data yang tidak perlu atau cadangkan data lama untuk mengurangi ukuran database dan meningkatkan kecepatan kueri.
Misalnya, jika Anda memiliki logs
tabel " " yang menyimpan catatan log lama, Anda dapat menghapus catatan yang lebih lama dari satu tahun menggunakan kueri berikut:
DELETE FROM logs WHERE created_at < '2022-01-01';
Manfaatkan memori cache
Konfigurasikan memori MySQL cache
untuk menyimpan kueri yang sering dieksekusi dan data yang baru diakses. Ini membantu mengurangi waktu akses disk dan meningkatkan kecepatan kueri.
Misalnya, untuk mengonfigurasi cache memori dengan ukuran 1GB, Anda dapat memodifikasi file konfigurasi "my.cnf" MySQL sebagai berikut:
[mysqld]
...
query_cache_type = 1
query_cache_size = 1G
Harap perhatikan bahwa contoh di atas bersifat ilustratif dan perlu disesuaikan dengan struktur dan persyaratan database Anda yang sebenarnya. Uji dan evaluasi dengan cermat keefektifan sebelum dan sesudah menerapkan teknik pengoptimalan ini untuk memastikannya cocok untuk lingkungan khusus Anda.