Cara melaksanakan pengoptimuman asas MySQL: penggunaan cache pertanyaan dan analisis prestasi

王林
Lepaskan: 2023-11-08 19:35:18
asal
674 orang telah melayarinya

Cara melaksanakan pengoptimuman asas MySQL: penggunaan cache pertanyaan dan analisis prestasi

Cara melaksanakan pengoptimuman asas MySQL: penggunaan cache pertanyaan dan analisis prestasi

MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan Dalam senario dengan jumlah data yang besar, mengoptimumkan prestasi pangkalan data adalah sangat penting. Antaranya, query cache adalah komponen penting yang boleh membantu meningkatkan prestasi MySQL. Artikel ini menerangkan cara menggunakan cache pertanyaan dan melaksanakan analisis prestasi serta menyediakan contoh kod khusus.

  1. Peranan cache pertanyaan

Cache pertanyaan ialah mekanisme yang menyimpan hasil pertanyaan apabila pertanyaan yang sama dilaksanakan, MySQL akan memperoleh hasil daripada cache tanpa melaksanakan pertanyaan itu lagi. Ini mengurangkan akses pangkalan data dan meningkatkan kelajuan tindak balas pertanyaan dan prestasi keseluruhan.

  1. Hidupkan cache pertanyaan

Dalam MySQL, cache pertanyaan dimatikan secara lalai dan kami perlu menghidupkannya secara manual. Dalam fail konfigurasi my.cnf, tambahkan konfigurasi berikut:

query_cache_type = 1
query_cache_size = 128M
Salin selepas log masuk

Konfigurasi di atas menetapkan jenis cache pertanyaan kepada 1, yang bermaksud cache dihidupkan ialah 128MB, yang boleh dilaraskan mengikut situasi sebenar .

  1. Penggunaan cache pertanyaan

Untuk membolehkan keputusan pertanyaan dicache, syarat berikut perlu dipenuhi:

  • Pernyataan pertanyaan tidak mengandungi pembolehubah (jadi dalam aplikasi sebenar, cuba alihkan bahagian dinamik ke lapisan aplikasi)
  • Jadual Data tidak berubah

Apabila syarat di atas dipenuhi, MySQL akan menyimpan hasil pertanyaan dalam cache untuk menunggu pertanyaan yang sama lain kali.

  1. Analisis prestasi cache pertanyaan

Untuk menganalisis prestasi cache pertanyaan, MySQL menyediakan beberapa pembolehubah dan arahan sistem. Berikut ialah beberapa contoh biasa operasi berkaitan analisis prestasi:

  • Kadar hit cache pertanyaan (Qcache_hits): Menunjukkan bilangan kali keputusan pertanyaan diperoleh daripada cache.
SHOW VARIABLES LIKE 'Qcache%';

+-------------------------+---------+
| Variable_name           | Value   |
+-------------------------+---------+
| Qcache_free_blocks      | 1       |
| Qcache_free_memory      | 3353656 |
| Qcache_hits             | 292     |
| Qcache_inserts          | 408     |
| Qcache_lowmem_prunes    | 0       |
| Qcache_not_cached       | 63      |
| Qcache_queries_in_cache | 402     |
| Qcache_total_blocks     | 817     |
+-------------------------+---------+
Salin selepas log masuk
  • Kadar kehilangan cache pertanyaan (Qcache_not_cached): Menunjukkan bilangan kali keputusan pertanyaan tidak diperoleh daripada cache.
  • Masa sisipan cache pertanyaan (Qcache_inserts): Menunjukkan bilangan kali hasil pertanyaan dimasukkan ke dalam cache.
  • Kosongkan cache pertanyaan: Anda boleh menggunakan arahan berikut untuk mengosongkan cache pertanyaan, yang berguna apabila terdapat perubahan data.
RESET QUERY CACHE;
Salin selepas log masuk

Jalankan baris arahan di atas dalam terminal MySQL untuk mengosongkan cache pertanyaan.

  1. Kes Analisis Prestasi

Berikut ialah kes khusus yang menunjukkan cara menggunakan cache pertanyaan dan menganalisis kadar hit cache pertanyaan:

-- 创建测试表
CREATE TABLE test_table (
    id INT PRIMARY KEY,
    name VARCHAR(255)
) ENGINE=InnoDB;

-- 插入测试数据
INSERT INTO test_table (id, name)
VALUES (1, 'John'), (2, 'Lily');

-- 优化前的查询
SELECT * FROM test_table WHERE id = 1;

-- 查看查询缓存命中率
SHOW STATUS LIKE 'Qcache%';

-- 开启查询缓存
SET GLOBAL query_cache_size = 128 * 1024 * 1024;
SET GLOBAL query_cache_type = 1;

-- 优化后的查询
SELECT * FROM test_table WHERE id = 1;

-- 查看查询缓存命中率
SHOW STATUS LIKE 'Qcache%';
Salin selepas log masuk

Melalui kes di atas, anda boleh memahami penggunaan cache pertanyaan dan cara melakukan analisis prestasi. Walau bagaimanapun, perlu diingatkan bahawa caching pertanyaan tidak berkesan dalam semua senario Apabila data berubah dengan kerap (contohnya, terdapat banyak operasi tulis), caching pertanyaan akan membawa beberapa overhed tambahan. Oleh itu, ujian dan penilaian prestasi diperlukan dalam aplikasi khusus untuk memilih strategi pengoptimuman yang sesuai.

Ringkasan:

Artikel ini memperkenalkan komponen penting dalam pengoptimuman asas MySQL - kaedah analisis penggunaan dan prestasi cache pertanyaan, dan menyediakan contoh kod khusus. Dalam aplikasi praktikal, penggunaan cache pertanyaan yang munasabah boleh meningkatkan prestasi pangkalan data dengan berkesan. Walau bagaimanapun, perlu diingatkan bahawa caching pertanyaan tidak boleh digunakan dalam semua senario Ia perlu diuji dan dinilai berdasarkan keperluan perniagaan tertentu untuk memilih strategi pengoptimuman yang sesuai. Pada masa yang sama, anda juga harus memberi perhatian untuk mengosongkan cache dalam masa untuk memastikan ketepatan hasil pertanyaan.

Atas ialah kandungan terperinci Cara melaksanakan pengoptimuman asas MySQL: penggunaan cache pertanyaan dan analisis prestasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan