Apabila melakukan pertanyaan data, kadangkala masa pertanyaan terlalu lama Pada masa ini, halaman akan membeku dan menunggu, memberikan pengalaman buruk kepada pengguna. Untuk memperbaiki keadaan ini, anda boleh menggunakan beberapa teknik untuk mengoptimumkan pertanyaan, dan pada masa yang sama memberitahu pengguna bahawa pertanyaan sedang dijalankan melalui maklumat segera.
1. Optimumkan pertanyaan
1. Gunakan indeks
Apabila sejumlah besar data muncul dalam jadual dalam pangkalan data, mengoptimumkan pertanyaan melalui indeks boleh meningkatkan kelajuan pertanyaan. Indeks ialah struktur data yang mempercepatkan pertanyaan dan operasi isihan. Jika indeks tidak digunakan, semua data akan diimbas untuk mencari maklumat yang diperlukan semasa pertanyaan sebenar, yang akan memakan banyak masa dan sumber. Oleh itu, apabila mereka bentuk pangkalan data, indeks yang munasabah harus disediakan untuk mengoptimumkan pertanyaan.
2. Elakkan menggunakan "*"
Semasa membuat pertanyaan, cuba elakkan menggunakan "*" untuk mendapatkan semua data. Ini kerana menanyakan semua data memerlukan mendapatkan semula semua lajur dalam jadual, yang akan menyebabkan pertanyaan mengambil masa terlalu lama. Dan jika anda hanya menanyakan lajur yang diperlukan, masa pertanyaan boleh dipendekkan dengan banyak.
3. Optimumkan pernyataan pertanyaan
Sesetengah pernyataan pertanyaan akan menyebabkan masa pertanyaan menjadi terlalu lama, seperti menggunakan subkueri, pertanyaan jadual bersama, dsb. Apabila menghadapi situasi seperti ini, anda boleh cuba mengoptimumkan pernyataan pertanyaan dan mengurangkan masa pertanyaan. Contohnya, untuk pertanyaan jadual bersama, cantuman dalam atau cantuman luar boleh digunakan untuk mengoptimumkan.
2. Status pertanyaan segera
Apabila melakukan pertanyaan jangka panjang, halaman mungkin kelihatan "skrin putih" atau tersekat pada masa ini, pengguna tidak akan merasakan sama ada pertanyaan telah bermula. , atau pertanyaan telah selesai. Oleh itu, status pertanyaan hendaklah dipaparkan pada halaman untuk memberitahu pengguna bahawa pertanyaan sedang dijalankan.
1. Paparkan bar kemajuan pertanyaan
Paparkan bar kemajuan pertanyaan pada halaman untuk memberitahu pengguna bahawa pertanyaan sedang dijalankan. Pada masa yang sama, perubahan bar kemajuan membolehkan pengguna melihat kemajuan pertanyaan, dengan itu mengurangkan masa menunggu pengguna.
2. Gunakan pemuatan dinamik
Jika pertanyaan mengambil masa yang lama, anda boleh menggunakan pemuatan dinamik untuk mengoptimumkannya. Pemuatan dinamik boleh menyerahkan proses apabila pertanyaan bermula, dan kemudian mengembalikan hasil kepada pengguna apabila pertanyaan selesai. Dengan cara ini, pengguna boleh melihat dan berinteraksi dengan kandungan halaman terlebih dahulu, tanpa menunggu pertanyaan tamat sebelum mereka boleh beroperasi.
3. Gunakan pertanyaan tak segerak
Pertanyaan tak segerak boleh melakukan operasi lain semasa membuat pertanyaan tanpa menunggu pertanyaan selesai. Sebagai contoh, anda boleh menggunakan Ajax untuk melaksanakan pertanyaan tak segerak dan memasukkan hasil pertanyaan ke dalam halaman tanpa memuatkan semula keseluruhan halaman.
3. Ralat pengendalian
Apabila melakukan pertanyaan, beberapa ralat mungkin berlaku, seperti kegagalan sambungan pangkalan data, ralat pernyataan SQL, dll. Pada masa ini, ralat harus dikendalikan dan maklumat yang sepadan diberikan kepada pengguna.
1. Paparkan mesej ralat
Apabila ralat berlaku dalam pertanyaan, mesej ralat yang sepadan hendaklah dipaparkan kepada pengguna. Sebagai contoh, anda boleh menggesa pada halaman "Sambungan pangkalan data gagal, sila cuba lagi kemudian" atau "Ralat pernyataan pertanyaan, sila semak dan cuba lagi."
2. Berikan penyelesaian
Selain memaparkan mesej ralat, pengguna harus diberikan penyelesaian yang sepadan. Contohnya, jika pertanyaan gagal kerana masalah sambungan rangkaian, anda boleh menggesa pengguna menyemak sambungan rangkaian atau cuba lagi kemudian. Jika terdapat ralat dalam pernyataan SQL, pengguna boleh digesa untuk menyemak kenyataan atau menghubungi pentadbir untuk mendapatkan bantuan.
Ringkasan
Apabila melakukan pertanyaan jangka panjang, dengan mengoptimumkan pernyataan pertanyaan, menggesa status pertanyaan dan mengendalikan mesej ralat, pengalaman pengguna boleh dipertingkatkan dan masa menunggu pengguna dapat dikurangkan. Pada masa yang sama, kita juga perlu bermula dengan reka bentuk dan pengoptimuman pangkalan data dan mempercepatkan pertanyaan dengan menyediakan indeks yang munasabah.
Atas ialah kandungan terperinci Bagaimana untuk mengoptimumkan pertanyaan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!