MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas, tetapi ia mungkin mengalami kesesakan prestasi apabila memproses sejumlah besar data. Untuk mengatasi isu ini, pembangun boleh menggunakan pengoptimum untuk meningkatkan prestasi MySQL. Dalam artikel ini, kami akan meneroka pelbagai jenis pengoptimum, cara menggunakannya dan beberapa amalan terbaik mereka.
Pengoptimum MySQL ialah komponen pasif yang menentukan pelan pelaksanaan untuk pengoptimuman pertanyaan apabila pertanyaan dilaksanakan. Berdasarkan faktor seperti struktur pertanyaan, saiz data, indeks, dll., pengoptimum akan memilih gabungan yang betul antara jadual dan cuba menggunakan indeks terbaik untuk memastikan jumlah data yang diimbas diminimumkan.
Untuk membantu pembangun meningkatkan prestasi pertanyaan, MySQL memberi amaran kepada semua orang bahawa semua lajur dalam jadual ditanya, jangan gunakan SELECT *, tetapi pilih lajur yang diperlukan.
Apabila menggunakan MySQL, pembangun selalunya perlu memproses sejumlah besar data. Kadangkala, mereka perlu mengendalikan pertanyaan yang rumit untuk mendapatkan hasil yang diperlukan. Dalam kes ini, untuk meningkatkan prestasi pertanyaan, anda boleh menggunakan pengoptimum MySQL.
Pembangun boleh menggunakan kaedah berikut untuk menentukan masa terbaik untuk menggunakan pengoptimum:
3.1 Pengoptimum Berasaskan Kos (CBO)
CBO ialah salah satu pengoptimum yang biasa digunakan dalam MySQL. Ia menggunakan maklumat statistik untuk menentukan rancangan pertanyaan. Berdasarkan statistik yang disimpan dalam metadata MySQL, CBO menggunakan model kos untuk mengira jumlah kos yang diperlukan untuk melaksanakan rancangan. Kos dikira berdasarkan metrik seperti tempoh, I/O, dsb. Pelan pelaksanaan dengan kos paling rendah yang diramalkan oleh CBO biasanya dilaksanakan oleh MySQL.
3.2 Pengoptimum Berasaskan Peraturan (RBO)
RBO ialah satu lagi pengoptimum yang menjadi lalai dalam versi MySQL sebelumnya. Ia menentukan rancangan pertanyaan berdasarkan set peraturan yang telah ditetapkan. Peraturan ditetapkan oleh pustaka MySQL Expressions. RBO tidak sebaik CBO, tetapi mungkin lebih pantas daripada CBO dalam beberapa situasi.
3.3 Cache Pertanyaan
Cache Pertanyaan ialah pengoptimum ketiga, yang melaksanakan mekanisme caching pertanyaan MySQL. Dalam MySQL, jika pertanyaan memetakan kepada teks yang sama, hasilnya boleh disimpan dalam cache supaya pertanyaan yang sama bertindak balas dengan lebih pantas pada kali berikutnya. Untuk mendayakan caching pertanyaan, tetapkan nilai pilihan query_cache_type dan query_cache_size.
Cara menggunakan pengoptimum4.1 Kemas Kini Statistik MySQL
Statistik MySQL adalah penting kerana ia digunakan untuk menentukan keputusan pengoptimum. Pembangun boleh mengemas kini statistik MySQL dengan menjalankan perintah ANALYZE TABLE dalam enjin MyISAM dan InnoDB, atau arahan OPTIMIZE TABLE dalam MyISAM.
4.2 Gunakan indeks yang sesuai
Indeks ialah komponen utama pengoptimum MySQL. Untuk pangkalan data yang besar, hanya menggunakan indeks yang sesuai boleh meningkatkan prestasi dengan ketara apabila pertanyaan dilaksanakan. Pembangun harus menggunakan indeks B-tree dan bukannya indeks cincang atau teks penuh dan memastikan lajur yang diindeks mempunyai kardinaliti yang rendah untuk mengurangkan masa tindak balas.
4.3 Caching hasil pertanyaan
Caching keputusan pertanyaan ialah teknik pengoptimuman berkesan yang menggunakan fungsi MySQL query caching. Pembangun boleh cache hasil pertanyaan dengan mendayakan enjin storan FEDERATED atau enjin storan MEMORY, atau dengan menggunakan memcached untuk caching.
4.4 Memampatkan saiz jadual
Pembangun boleh memampatkan saiz jadual dengan menggunakan enjin storan dan kaedah pembahagian jadual yang betul, atau dengan menggunakan teknik seperti pemampatan baris dalam InnoDB. Ini boleh meningkatkan prestasi pertanyaan dan juga membantu menjimatkan kos apabila bekerja dengan pangkalan data yang besar.
KesimpulanAtas ialah kandungan terperinci Bagaimana untuk meningkatkan prestasi MySQL dengan menggunakan pengoptimum. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!