Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah saya boleh mengehadkan masa pelaksanaan pertanyaan dalam MySQL?

Bagaimanakah saya boleh mengehadkan masa pelaksanaan pertanyaan dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-16 06:29:03672semak imbas

How Can I Limit Query Execution Time in MySQL?

Menguatkuasakan Had Masa Pelaksanaan Pertanyaan dalam MySQL

Soalan: Bolehkah saya mengkonfigurasi MySQL untuk menyekat masa pelaksanaan pertanyaan ?

Jawapan: Dari segi sejarah, MySQL tidak mempunyai mekanisme terbina dalam untuk mengehadkan masa pelaksanaan pertanyaan. Walau bagaimanapun, kemas kini terbaru MySQL 5.7 memperkenalkan pembayang pengoptimum MAX_EXECUTION_TIME.

Petunjuk Pengoptimum MAX_EXECUTION_TIME:

Setakat MySQL 5.7, anda boleh memasukkan pertanyaan MAX_EXECUTION_TIME TIME optimizer . Petunjuk ini mengarahkan pelayan untuk menamatkan pertanyaan jika ia melebihi had masa yang ditentukan.

SELECT * FROM table_name WHERE condition LIMIT 1 MAX_EXECUTION_TIME=10;

Tama Masa Seluruh Pelayan:

Jika anda memerlukan seluruh pelayan tamat masa atau perlu mengehadkan pertanyaan selain daripada SELECT, jawapan asal yang diberikan kekal sebagai pilihan terbaik anda.

Pendekatan Kerja Cron:

Jawapan asal mencadangkan menyediakan tugas cron yang secara berkala menyemak dan menamatkan sebarang pertanyaan yang melebihi had masa yang telah ditetapkan. Pendekatan ini melibatkan menjalankan langkah berikut:

  1. Laksanakan SHOW PROCESSLIST untuk mendapatkan semula senarai proses yang sedang dijalankan.
  2. Kenal pasti proses dengan masa pertanyaan melebihi had yang dikehendaki.
  3. Gunakan KILL [id proses] untuk menamatkan proses yang menyinggung perasaan.

Pertimbangan Tambahan:

Walaupun pembayang MAX_EXECUTION_TIME mudah, ia hanya digunakan pada pertanyaan SELECT dan tidak boleh dikuatkuasakan di peringkat pelayan. Pendekatan kerja cron menyediakan penyelesaian yang lebih mantap untuk menguatkuasakan had masa merentas semua jenis pertanyaan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengehadkan masa pelaksanaan pertanyaan dalam MySQL?. 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