Apakah SQL_BIG_SELECTS dan bagaimana saya boleh mengelak daripada menghadapinya dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-11-11 14:07:03
asal
950 orang telah melayarinya

What is SQL_BIG_SELECTS and how can I avoid encountering it in MySQL?

Memahami SQL_BIG_SELECTS dalam MySQL

SQL_BIG_SELECTS ialah parameter pengoptimuman MySQL yang direka untuk menghalang pertanyaan SELECT yang sangat besar dan berpotensi bermasalah daripada dilaksanakan. Apabila pertanyaan dianggap "terlalu besar", MySQL mungkin mengembalikan ralat yang serupa dengan:

ERROR 1104: The SELECT would examine too many records and probably take a very long time.
Check your WHERE and use SET OPTION SQL_BIG_SELECTS=1 if the SELECT is ok
Salin selepas log masuk

Untuk menangani isu ini dengan berkesan, mari kita terokai jawapan kepada soalan khusus:

1. Ambang untuk "BIG SELECTS"

MySQL menentukan "BIG SELECT" berdasarkan nilai pembolehubah sistem 'max_join_size'. Jika pertanyaan mungkin memeriksa lebih daripada bilangan baris ini, ia dibenderakan sedemikian. Gunakan 'tunjuk pembolehubah' untuk melihat tetapan saiz gabungan maks semasa.

2. Pengindeksan dan PILIHAN Besar

Pengindeksan yang betul dan klausa WHERE yang cekap boleh mengurangkan risiko menghadapi ralat SQL_BIG_SELECTS. Indeks membantu mempercepatkan pelaksanaan pertanyaan, mengurangkan bilangan baris yang diperiksa. Klausa WHERE yang ditakrifkan dengan baik boleh mengurangkan lagi skop pertanyaan dan mengelakkan pengimbasan data yang tidak diperlukan.

3. SQL_BIG_SELECTS sebagai Pilihan Terakhir

SQL_BIG_SELECTS tidak boleh digunakan sebagai penyelesaian umum. Ia bertujuan sebagai langkah kecemasan untuk mengelakkan pertanyaan yang terlalu besar daripada menggunakan sumber sistem. Amalan yang baik untuk mengelak daripada menetapkannya secara global atau untuk semua pengguna.

4. Mengkonfigurasi SQL_BIG_SELECTS

Untuk menetapkan SQL_BIG_SELECTS, anda boleh:

  • Ubah suai fail konfigurasi my.cnf dan tambah "sql-big-selects=ON" di bawah [mysqld] bahagian.
  • Tetapkannya pada permulaan pelayan menggunakan pilihan baris perintah --sql-big-selects.
  • Tetapkan pada asas sesi menggunakan pertanyaan "SET SESSION SQL_BIG_SELECTS=1".

5. Alternatif kepada SQL_BIG_SELECTS

Pertimbangkan alternatif berikut sebelum menggunakan SQL_BIG_SELECTS:

  • Optimumkan pertanyaan anda dengan pengindeksan yang betul dan klausa WHERE.
  • Masukkan_sistem_tambahan_sistem. pembolehubah untuk membenarkan pertanyaan yang lebih besar.

Atas ialah kandungan terperinci Apakah SQL_BIG_SELECTS dan bagaimana saya boleh mengelak daripada menghadapinya dalam MySQL?. 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