Bagaimanakah Saya Boleh Mengoptimumkan Pertanyaan Carian Berasaskan Lokasi untuk Pangkalan Data Perniagaan Besar?

Patricia Arquette
Lepaskan: 2024-11-08 09:02:01
asal
792 orang telah melayarinya

How Can I Optimize Location-Based Search Queries for Large Business Databases?

Mengoptimumkan Carian Berdasarkan Lokasi

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;
Salin selepas log masuk

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!

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