Rumah >pangkalan data >tutorial mysql >Bagaimanakah Penstrukturan Semula Pangkalan Data Boleh Mengoptimumkan Pertanyaan MySQL yang Lambat dan Menghapuskan I/O Cakera?

Bagaimanakah Penstrukturan Semula Pangkalan Data Boleh Mengoptimumkan Pertanyaan MySQL yang Lambat dan Menghapuskan I/O Cakera?

Susan Sarandon
Susan Sarandonasal
2024-12-30 14:44:171004semak imbas

How Can Database Restructuring Optimize a Slow MySQL Query and Eliminate Disk I/O?

Mengoptimumkan Pertanyaan MySQL untuk Mengurangkan Masa Pelaksanaan dan Menghapuskan Cakera I/O

Dalam senario aplikasi web biasa, prestasi pertanyaan pangkalan data adalah penting untuk mengekalkan pengalaman pengguna yang responsif. Artikel ini menangani pertanyaan MySQL khusus yang mempamerkan masa pelaksanaan yang perlahan, mengakibatkan prestasi tapak web yang lemah.

Pertanyaan yang dipersoalkan menyertai tiga jadual: "poster_data," "poster_categories" dan "poster_prodcat." Ia bertujuan untuk mendapatkan semula data daripada jadual berdasarkan syarat tertentu pada jadual "poster_prodcat". Pelan pelaksanaan pertanyaan mendedahkan penglibatan jadual "poster_prodcat" dan penulisannya pada cakera, menunjukkan pengambilan data yang tidak cekap.

Untuk menangani isu prestasi, kami meneroka pendekatan alternatif yang melibatkan penstrukturan semula pangkalan data dan pertanyaan. Khususnya, kami mencipta jadual baharu bernama "poster," "kategori" dan "poster_category." Jadual "poster_category" telah direka bentuk dengan indeks komposit berkelompok pada lajur (cat_id, poster_id).

Dengan skema baharu ini, kami menulis semula pertanyaan asal seperti berikut:

SELECT
    p.*,
    c.*
FROM
    poster_category pc
INNER JOIN
    category c ON pc.cat_id = c.cat_id
INNER JOIN
    poster p ON pc.poster_id = p.poster_id
WHERE
    pc.cat_id = 623
ORDER BY
    p.name
LIMIT
    32;

The JELASKAN pelan untuk pertanyaan yang ditulis semula mendedahkan peningkatan yang ketara dalam prestasi. Pertanyaan kini menggunakan indeks dengan berkesan, mengurangkan keperluan untuk cakera I/O dan meminimumkan masa pelaksanaan.

Atas ialah kandungan terperinci Bagaimanakah Penstrukturan Semula Pangkalan Data Boleh Mengoptimumkan Pertanyaan MySQL yang Lambat dan Menghapuskan I/O Cakera?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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