Web Development တွင်အသုံးပြုသူတည်နေရာပေါ်တွင် အခြေခံ. အကြောင်းအရာသို့မဟုတ် 0 န်ဆောင်မှုများကိုအကြံပြုခြင်းသည်ဘုံလိုအပ်ချက်ဖြစ်လာသည်။ ထိုကဲ့သို့သောပထဝီအနေအထားရှာဖွေမှုများကိုပြုပြင်သည့်အခါ၎င်းသည်လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်အချက်အလက်များကိုပြန်လည်ရယူခြင်းပါဝင်သည်။ စုံစမ်းမှုမြန်နှုန်းတိုးတက်စေရန် MySQL ၏ Spatial indexing နှင့်ကျိုးကြောင်းဆီလျော်သော SQL မဟာဗျူဟာများကိုအသုံးပြုနိုင်သည်။
တည်နေရာအချက်အလက်များကိုသိမ်းဆည်းရန်အသုံးပြုသော နေရာများဟုခေါ်သည့်နေရာများ နှင့်ကွက်လပ်များတွင် ID , အမည် , လတ်တီတွဒ် နှင့် လောင်ဂျီတွဒ်များ ပါ 0 င်သည်ဆိုပါစို့။ စုံစမ်းမှုစွမ်းအားစွမ်းအင်ကိုတိုးတက်စေရန်အတွက်လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်နယ်ပယ်များအတွက် Spatial အညွှန်းကိန်းတစ်ခုဖန်တီးရန်လိုအပ်သည်။
Talk နေရာများ alplication spatial index_name (လတ်တီက်တို့, လောင်ဂျီတွဒ်) ထည့်ပါ။
PHP တွင် SQL ထုတ်ပြန်ချက်များသည်အနီးအနားရှိနေရာများ၏စုံစမ်းမှုရှာဖွေမှုကိုနားလည်သဘောပေါက်ရန်ပစ်မှတ်ထားသောအချက်နှင့်အကွာအဝေးကိုတွက်ချက်ရန်ဆိပ်ကမ်းထုတ်ပြန်ချက်များနှင့်အတူ haversine formula နှင့်ပေါင်းစပ်နိုင်သည်။
$ လတ်တီတွဒ် = 37.7749; // စုံစမ်းမှုအချက် $ လောင်ဂျီတွဒ် = -122.4194 ၏လတ်တီတွဒ်; // စုံစမ်းမှုအမှတ် $ အကွာအဝေး = 10; // query point (ကီလိုမီတာ) ၏အချင်းဝက် $ query = "Select ID, အမည်, လတ်တီတွဒ်, လောင်ဂျီတွဒ်, (6371 * ACS (COS (radians (radians)) * COS (radians (လတ်တီတွဒ်)) * COS (radians (လောင်ဂျီတွဒ်) - radians ($ လောင်ဂျီတွဒ်)) + Sin (radians ($ လော်ထင်)) * အပြစ် (radians (လတ်တီတွဒ်)) အကွာအဝေးအဖြစ်) တည်နေရာကနေ အကွာအဝေး <= $ အကွာအဝေးရှိခြင်း အကွာအဝေးအားဖြင့်အမိန့် "; $ ရလဒ် = MySQLI_QUERY ($ ဆက်သွယ်မှု, $ query);
ဤနည်းလမ်းသည် indexing နှင့်အကွာအဝေး filtering ကိုမလိုအပ်သောဖြတ်သန်းမှုလုပ်ငန်းများကိုသိသိသာသာလျှော့ချရန်ပေါင်းစပ်ပြီးတည်နေရာအကြံပြုချက်များသို့မဟုတ်မြေပုံအမျိုးအစားများအတွက်အထူးသဖြင့်သင့်လျော်သည်။
ကြီးမားသောဒေတာစာရင်းများကိုပြသသောအခါ Pagination မေးမြန်းချက်များသည်အလွန်အမင်းများများစားစားဖြစ်သည်။ သတ်မှတ်ထားသော ဝါကျများနှင့်ပေါင်းစပ်ထားသောအညွှန်းကွက်များကို အသုံးပြု. သတ်မှတ်ထားသောအကွာအဝေးအတွင်းရှိအချက်အလက်များကိုထိထိရောက်ရောက်ထုတ်ယူနိုင်သည်။
အကယ်. paging သည်လယ်ကွင်းပေါ်တွင်အခြေခံသည် (ဥပမာ - အဓိက Key ID ကဲ့သို့) ကိုအခြေခံသည်ဆိုပါကလယ်ကွင်းကိုအညွှန်းရှာဖွေရန်လိုအပ်သည်။
စာအုပ်များ (ID) တွင်အညွှန်းကိန်း index_name ကိုဖန်တီးပါ။
အောက်ပါတို့ကိုအသုံးများသော Pagination စုံစမ်းမှုအကောင်အထည်ဖော်မှုနည်းလမ်းများဖြစ်သည်။
$ စာမျက်နှာ = 1; // လက်ရှိစာမျက်နှာနံပါတ် $ perpage = 10; // စာမျက်နှာတစ်ခုချင်းစီအတွက်မှတ်တမ်းနံပါတ် $ Offset = ($ စာမျက်နှာ - 1) * $ perpage; $ query = "စာအုပ်များမှရွေးချယ်ပါ ID အားဖြင့်မှာကြား ကန့်သတ် $ Offset, $ perpage "; $ ရလဒ် = MySQLI_QUERY ($ ဆက်သွယ်မှု, $ query);
ရှုပ်ထွေးသော sququeries များသို့မဟုတ်ကြီးမားသော offset လုပ်ရာများနှင့်နှိုင်းယှဉ်ပါကအညွှန်းကိန်းများနှင့်ပေါင်းစပ်ထားသောအညွှန်းများကိုကန့်သတ်ချက်သည်ဒေတာပမာဏသည်သန်းအဆင့်အထိရောက်ရှိသည့်အခါဒေတာဘေ့စ်ဝန်ထုပ်ဝန်ပိုးကိုသိသိသာသာလျှော့ချနိုင်သည်။
တည်နေရာအခြေပြုဒေတာ 0 န်ဆောင်မှုများသို့မဟုတ်ရိုးရာဒေတာအနှောက်အယှက်ဖြစ်စေသောစာရင်းများ, MySQL ရှိ Spatial Indexes နှင့် haversine formersine formersine formersine formersine formersine formersine formersine formersine formersas များကိုလျင်မြန်စွာနားလည်နိုင်သည်။ paging အခြေအနေများတွင်ရှိနေစဉ်လယ်ကွင်းအညွှန်းများနှင့်ကန့်သတ်ချက်ထုတ်ပြန်ချက်များကိုပေါင်းစပ်ခြင်းနှင့်ကန့်သတ်ချက်ထုတ်ပြန်ချက်များသည်အချက်အလက်များပြန်လည်ရယူခြင်းထိရောက်မှုကိုတိုးတက်စေသည်။ developer များသည်လျှောက်လွှာတင်ရန်အတွက်ခိုင်မာသောပံ့ပိုးမှုများပေးရန်သူတို့၏စီးပွားရေးအခြေအနေများအရဤနည်းစနစ်များအရဤနည်းစနစ်များကိုပြောင်းလဲသင့်သည်။