Mencari lokasi berdekatan dengan cekap adalah penting untuk aplikasi seperti pemetaan dan navigasi. Formula Haversine ialah kaedah yang digunakan secara meluas untuk mengira jarak antara dua titik pada sfera. Formula ini boleh dilaksanakan secara langsung dalam SQL untuk mengoptimumkan pertanyaan carian berasaskan lokasi.
Dalam kes anda, anda bimbang tentang prestasi pengiraan jarak untuk lebih 5k perniagaan. Pertimbangkan untuk menggunakan pertanyaan MySQL berikut dengan formula Haversine:
SELECT id, (3959 * acos(cos(radians(37)) * cos(radians(lat)) * cos(radians(lng) - radians(-122)) + sin(radians(37)) * sin(radians(lat)))) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0, 20;
Dalam pertanyaan ini, gantikan "37" dan "-122" dengan latitud dan longitud lokasi pengguna. Dengan mengira jarak dalam pangkalan data, anda menghapuskan keperluan untuk mendapatkan semula semua perniagaan dan melakukan pengiraan jarak dalam PHP.
Menggunakan pendekatan yang dioptimumkan ini, anda boleh meningkatkan kelajuan carian lokasi berdekatan anda dengan ketara, menjadikannya sesuai untuk mengendalikan pangkalan data yang besar. Adalah penting untuk mengindeks lajur yang terlibat dalam pengiraan jarak untuk prestasi optimum.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Pertanyaan Carian Berasaskan Lokasi untuk Pangkalan Data Perniagaan Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!