Rumah > Artikel > pangkalan data > Bagaimana untuk Mencari Koordinat Dengan Cekap Dalam Radius 5 Batu Menggunakan 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";
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!