Bagaimana untuk Mencari Koordinat Dengan Cekap Dalam Radius 5 Batu Menggunakan MySQL?

Barbara Streisand
Lepaskan: 2024-11-01 01:56:28
asal
288 orang telah melayarinya

How to Efficiently Find Coordinates Within a 5-Mile Radius Using MySQL?

Mencari Koordinat Dalam Julat dengan MySQL

Untuk meningkatkan prestasi pangkalan data dan mengurangkan permintaan pemprosesan, adalah wajar untuk mengoptimumkan pertanyaan yang mendapatkan semula data tertentu dalam julat yang ditentukan. Dalam senario ini, anda mempunyai pangkalan data dengan 100,000 alamat, setiap satu dengan koordinat latitud dan longitudnya. Matlamat anda adalah untuk memaparkan hanya alamat yang terletak dalam radius 5 batu dari lokasi pengguna tertentu, dengan berkesan mengecilkan hasil daripada 100,000 kepada sekitar 5 atau 6.

Untuk menyelesaikan masalah ini dengan cekap, anda boleh menggunakan Formula Haversine terus dalam pertanyaan MySQL anda. Formula matematik ini mengira jarak antara dua titik pada sfera menggunakan nilai latitud dan longitud masing-masing.

Begini cara anda boleh memasukkan formula Haversine ke dalam pertanyaan anda:

$sql = "SELECT *, ( 3959 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5";
Salin selepas log masuk

Dalam pertanyaan ini , gantikan $lat dan $lng dengan koordinat latitud dan longitud lokasi pengguna. Hasil pertanyaan ini akan menjadi senarai alamat dengan jaraknya dari lokasi pengguna yang dinyatakan dalam lajur jarak. Anda kemudiannya boleh menggunakan senarai ini untuk menapis alamat yang berada dalam julat 5 batu.

Dengan menggunakan formula Haversine secara langsung dalam MySQL, anda boleh mengurangkan dengan ketara bilangan rekod yang diambil dan meningkatkan prestasi anda operasi pangkalan data. Kaedah ini memastikan bahawa hanya alamat yang berkaitan dikembalikan, meminimumkan pemprosesan yang tidak perlu dan meningkatkan responsif aplikasi anda.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Koordinat Dengan Cekap Dalam Radius 5 Batu Menggunakan 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!