Teknik Optimasi kanggo MySQL: Ningkatake Kinerja lan Kacepetan

Nemtokake kolom sing dibutuhake ing SELECT pitakon

Tinimbang milih kabeh kolom ing SELECT pitakon, mung pilih kolom sing dibutuhake kanggo nyuda beban lan nambah kacepetan pitakon.

Contone, yen sampeyan mung peduli karo jeneng lan alamat pelanggan, ganti pitakon:

SELECT * FROM customers;

karo

SELECT name, address FROM customers;

 

Nggawe indeks

Index mbantu MySQL nggoleki lan njupuk data luwih cepet. Ngenali kolom sing kerep digunakake ing WHERE, JOIN, utawa ORDER BY klausa lan nggawe indeks kanggo wong-wong mau.

Contone, ing orders tabel " ", yen customer_id kolom " " asring digunakake ing WHERE utawa JOIN pitakon, sampeyan bisa nggawe indeks kaya ing ngisor iki:

CREATE INDEX idx_customer_id ON orders(customer_id);

 

Gunakake jinis indeks sing cocog

MySQL nyedhiyakake macem-macem jinis indeks kayata B-tree, hash, lan full-text. Pilih jinis indeks sing cocog adhedhasar syarat pitakon sampeyan kanggo njamin kinerja sing optimal.

Contone, yen sampeyan kudu nggoleki teks ing kolom data, sampeyan bisa nggawe full-text indeks kaya ing ngisor iki:

CREATE FULLTEXT INDEX idx_description ON products(description);

 

Ngoptimalake pitakon

Gunakake EXPLAIN kanggo ndeleng rencana eksekusi query lan nganalisa carane MySQL nindakake. Iki mbantu sampeyan ngenali masalah kinerja lan ngoptimalake pitakon kanthi nggunakake indeks utawa nulis ulang pitakon.

Contone, kanggo ndeleng rencana pitakon pitakon SELECT, jalanake prentah ing ngisor iki:

EXPLAIN SELECT * FROM orders WHERE customer_id = 123;

 

Matesi jumlah asil bali

Nalika pitakonan ngasilake asil akeh, matesi jumlah asil bali nggunakake LIMIT klausa. Iki mbantu nyuda beban lan nambah kacepetan pitakon.

Contone, kanggo mung ngasilake 10 asil saka tabel "produk", sampeyan bisa nggunakake pitakon ing ngisor iki:

SELECT * FROM products LIMIT 10;

 

Gunakake INNER JOIN tinimbang JOIN

INNER JOIN performs luwih apik tinimbang biasa JOIN. Gunakake INNER JOIN nalika sampeyan mung Care babagan cathetan sing duwe match ing loro tabel.

Contone, kanggo nggabungake tabel " orders " lan " customers " adhedhasar customer_id kolom " ", sampeyan bisa nggunakake pitakon ing ngisor iki:

SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;

 

Gunakake tabel sementara kanthi ati-ati

Tabel sauntara bisa digunakake ing kasus tartamtu, nanging kudu digunakake kanthi ati-ati amarga bisa alon-alon pitakon. Coba ngoptimalake pitakon supaya ora nggunakake tabel sementara yen bisa.

Contone, tinimbang nggunakake tabel sementara ing pitakon ing ngisor iki:

CREATE TEMPORARY TABLE temp_table SELECT * FROM products;

sampeyan bisa nyoba ngoptimalake query kanggo langsung query data saka tabel asli.

 

Fine-tune konfigurasi MySQL

Coba konfigurasi ulang MySQL kanggo ngoptimalake sumber daya sistem lan selaras karo syarat aplikasi sampeyan. Iki kalebu konfigurasi memori, ukuran buffer, watesan sambungan, lan paramèter liyane. Deleng dokumentasi MySQL lan sinau carane nyetel konfigurasi supaya cocog karo lingkungan tartamtu.

 

Mbusak data sing ora perlu

Mbusak data sing ora perlu utawa gawe serep data lawas kanggo nyuda ukuran database lan nambah kacepetan pitakon.

Contone, yen sampeyan duwe " logs " tabel sing nyimpen cathetan log lawas, sampeyan bisa mbusak cathetan sing luwih lawas tinimbang setahun nggunakake pitakon ing ngisor iki:

DELETE FROM logs WHERE created_at < '2022-01-01';

 

Gunakake memori cache

Konfigurasi memori MySQL cache kanggo nyimpen pitakon sing kerep dieksekusi lan data sing mentas diakses. Iki mbantu nyuda wektu akses disk lan nambah kacepetan pitakon.

Contone, kanggo ngatur cache memori kanthi ukuran 1GB, sampeyan bisa ngowahi file konfigurasi "my.cnf" MySQL kaya ing ngisor iki:

[mysqld]  
...  
query_cache_type = 1  
query_cache_size = 1G  

 

Wigati dimangerteni manawa conto ing ndhuwur minangka ilustrasi lan kudu diatur miturut struktur lan syarat database sampeyan. Tes kanthi ati-ati lan evaluasi efektifitas sadurunge lan sawise ngetrapake teknik optimasi iki kanggo mesthekake yen cocog kanggo lingkungan tartamtu sampeyan.