Bagaimana untuk Mengoptimumkan Pertanyaan MySQL dengan Ralat \'Menggunakan indeks; Menggunakan sementara; Menggunakan filesort\'?

Linda Hamilton
Lepaskan: 2024-11-04 11:15:29
asal
768 orang telah melayarinya

How to Optimize MySQL Queries with

Berurusan dengan "Menggunakan indeks; Menggunakan sementara; Menggunakan failsort" Ralat dalam Pertanyaan MySQL

Kebimbangan biasa apabila bekerja dengan pertanyaan MySQL dihadapi amaran, "Menggunakan indeks; Menggunakan sementara; Menggunakan failsort." Mesej ini menunjukkan bahawa MySQL bergantung pada jadual sementara dan operasi isih fail, yang boleh memberi kesan kepada prestasi.

Dalam kes khusus ini, pertanyaan mengalami dua isu prestasi:

  1. Menggunakan Jadual Sementara: Pertanyaan mengandungi klausa ORDER BY dengan klausa GROUP BY yang berbeza dan lajur daripada berbilang jadual. Ini mencetuskan MySQL untuk mencipta jadual sementara.
  2. Menggunakan Filesort: Klausa ORDER BY mengisih mengikut medan yang dikira, yang tidak boleh dilakukan menggunakan indeks. Oleh itu MySQL terpaksa menggunakan failsort.

Untuk menyelesaikan isu ini:

  • Untuk Isu Jadual Sementara: Elakkan daripada mempunyai klausa ORDER BY dan GROUP BY yang berbeza atau gunakan lajur daripada jadual yang sama dalam klausa ini.
  • Untuk Isu Isih Fail: Cuba buat indeks pada medan pengiraan yang digunakan dalam klausa ORDER BY.

Berikut ialah versi pertanyaan yang dioptimumkan:

    EXPLAIN SELECT 
            el.object_id, 
            leo.object_desc, 
            COUNT(el.object_id) as count_rows
        FROM 
            event_log el 
            LEFT JOIN lookup_event_objects leo ON leo.object_id = el.object_id
        GROUP BY 
            el.object_id
        ORDER BY 
            count_rows DESC,
            leo.object_desc ASC
Salin selepas log masuk

Dengan menghapuskan penggunaan jadual sementara dan operasi isih fail, pertanyaan yang disemak ini seharusnya meningkatkan prestasi.

Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Pertanyaan MySQL dengan Ralat \'Menggunakan indeks; Menggunakan sementara; Menggunakan filesort\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!