Selectionies များကို ရွေးချယ်ခြင်းသည် များသောအားဖြင့်ဒေတာဆိုင်ရာအချက်အလက်များအားဒေတာအမြောက်အမြားမှတိကျသောသတင်းအချက်အလက်များကိုဖြည့်ဆည်းရန်လိုအပ်သည့်အခါအသုံးအများဆုံးလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ သို့သော်ဒေတာများကိုထိရောက်စွာရှာဖွေရန်နှင့်စုံစမ်းမှုရလဒ်များ၏အတန်းအရေအတွက်ကိုတိကျစွာရှာဖွေရန်နှင့်တိကျစွာရှာဖွေခြင်းသည် developer များမကြာခဏရင်ဆိုင်နေရသည့်ပြ a နာတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် ရွေးချယ်မှုဆိုင်ရာ မေးမြန်းချက်များတွင်ဒေတာများကိုပြန်လည်ရယူခြင်းကိုပိုမိုကောင်းမွန်စေရန်နှင့်ရလဒ်ကိုရရန် PDostatement :: Rowcount ကို မှန်ကန်စွာအသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
Selection queries များကိုရွေးချယ်သည့်အခါစုံစမ်းမှုအခြေအနေများသည်ကြီးမားသောအချက်အလက်အတွဲများဖြင့်စားပွဲများပါ 0 င်ပါကထိရောက်မှုပြ problem နာသည်ထင်ရှားလာလိမ့်မည်။ မေးမြန်းချက်များကိုအရှိန်မြှင့်ရန်, စားပွဲ၌မကြာခဏမေးမြန်းခြင်းများသို့အညွှန်းကိန်းများထည့်ခြင်းဖြင့်မေးမြန်းချက်များကိုသင်ပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။
ဥပမာအားဖြင့်, အသုံးပြုသူများကို ခေါ်သည့်စားပွဲတစ်ခုရှိသည်ဆိုပါစို့ ။ အီးမေးလ် အကွက်ပေါ်တွင်အညွှန်းတစ်ခုဖန်တီးနိုင်သည်။
CREATE INDEX idx_email ON users (email);
ဤနည်းအားဖြင့်ဒေတာဘေ့စ်သည်သတ်မှတ်ချက်များပိုမိုမြန်ဆန်စွာကိုက်ညီသောအတန်းများကိုရှာဖွေရန်အညွှန်းကိန်းများကိုသုံးနိုင်သည်။
ဒေတာဇယားတွင်အချက်အလက်များအလိုက်ထောင်ပေါင်းများစွာသောအချက်အလက်များအရဒေတာအားလုံးကိုတစ်ပြိုင်နက်ပြန်လည်ရယူရန်နှင့်မှတ်ဥာဏ်လျှံကိုဖြစ်စေရန်ထိရောက်သောကြောင့်ထိရောက်မှုမရှိပါ။ ဤအခြေအနေကိုပိုမိုကောင်းမွန်စေရန် Pagination query သည်ဘုံအလေ့အကျင့်တစ်ခုဖြစ်သည်။ Paginated Queries သည်သင့်အားအသုတ်တွင်ဒေတာများကိုဖွင့်ရန်ခွင့်ပြုသည်။
Pagination Query ၏အခြေခံနိယာမသည်က န့်သတ်ချက် နှင့် offset သော့ချက်စာလုံးများဖြင့်ရရှိသောရလဒ်များကိုကန့်သတ်ရန်ဖြစ်သည်။ ဥပမာအားဖြင့်, သင်သည်စုံစမ်းမှု၏နယ်ပယ်ကိုထိန်းချုပ်ရန် (10) ခုကိုအချိန်တိုင်းမေးမြန်းနိုင်သည်။
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1; // လက်ရှိစာမျက်နှာနံပါတ်ကိုရယူပါ
$limit = 10; // စာမျက်နှာတစ်ခုချင်းစီကိုပြန်လာသောမှတ်တမ်းအရေအတွက်
$offset = ($page - 1) * $limit; // offset တွက်ချက်
$sql = "SELECT * FROM users LIMIT :limit OFFSET :offset";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
Paging Query မှတစ်ဆင့်ဒေတာပြန်လည်ရယူခြင်းတစ်ခုချင်းစီတွင်ဝန်ကိုလျှော့ချနိုင်ပြီးလျှောက်လွှာ၏တုံ့ပြန်မှုမြန်နှုန်းကိုတိုးတက်စေနိုင်သည်။
Select selection မေးမြန်းချက်များကိုဖျော်ဖြေတင်ဆက်သည့်အခါပြန်လည်ရယူထားသောဒေတာအကွာအဝေးကိုသတ်မှတ်ရန်အခြေအနေများကိုသတ်မှတ်ရန်အခြေအနေများကို အသုံးပြု. သင့် လျော်သောအလုပ်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ ဥပမာအားဖြင့်, သင်သည်သက်ဆိုင်ရာအသုံးပြုသူများ၏သက်ဆိုင်ရာအချက်အလက်များကိုသာဂရုစိုက်ပါ ။
$sql = "SELECT * FROM users WHERE status = 'active' LIMIT 10";
$stmt = $pdo->prepare($sql);
$stmt->execute();
သတ်မှတ်ချက်များကိုသတ်သတ်မှတ်မှတ်အကွာအဝေးတစ်ခုသို့ကန့်သတ်ခြင်းအားဖြင့်ဒေတာဘေ့စ်သည်အချက်အလက်အားလုံးကိုမပြန်ဘဲစံသတ်မှတ်ချက်များနှင့်ကိုက်ညီသောအချက်အလက်များကိုစစ်ထုတ်နိုင်သည်။
ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PDO ကိုအသုံးပြုသောအခါ PDostatement :: Rowcount နည်းလမ်းကို query ရလဒ်၏အတန်းအရေအတွက်ကိုရရှိရန်အသုံးပြုနိုင်သည်။ သို့သော်သတိပြုသင့်သည်မှာ Rowcount သည် အထူးသဖြင့် query type ကို ရွေးချယ်ပါ ကအတန်းအစားမှန်ကန်သောအတန်းအရေအတွက်ကိုအမြဲတမ်းမပြန်နိုင်ကြောင်းသတိပြုသင့်သည်။ Rowcount သည် မျှော်လင့်ထားသည့်ရလဒ်များကိုအချို့သောဒေတာဘေ့စ်ယာဉ်မောင်းများတွင်မပြန်ကောင်းဖြစ်မည်မဟုတ်သော်လည်း ထည့်သွင်းခြင်း , မွမ်းမံ ခြင်း ,
ဥပမာအားဖြင့် Rowcount ကို အသုံးပြုရန်မှန်ကန်သောနည်းလမ်းမှာအောက်ပါအတိုင်းဖြစ်သည် -
$sql = "SELECT * FROM users WHERE status = 'active'";
$stmt = $pdo->prepare($sql);
$stmt->execute();
// query ရလဒ်အတွက်အတန်းအရေအတွက်ကိုရယူပါ
$rowCount = $stmt->rowCount();
echo "တွေ့ရှိရသောတက်ကြွသောအသုံးပြုသူများအရေအတွက်: " . $rowCount;
မှတ်ချက် - MySQL ကဲ့သို့သော ဒေတာ ဘေ့ စ ် အချို့, တိကျသောရလဒ်များကိုသေချာစေရန်သင်ရလဒ်အားလုံးကိုထုတ်ယူရန်နှင့်ရလဒ်အရေအတွက်ကိုရေတွက်ရန် fetchall () နည်းလမ်းကိုသုံးနိုင်သည်။
$results = $stmt->fetchAll();
$rowCount = count($results);
echo "တွေ့ရှိရသောတက်ကြွသောအသုံးပြုသူများအရေအတွက်: " . $rowCount;
Selecties ကိုရွေးချယ် သည့်အခါ, မလိုအပ်သောလယ်ကွင်းများကိုမေးမြန်းခြင်းကိုရှောင်ရန်ကြိုးစားပါ။ ဥပမာအားဖြင့်, သင်သည်သုံးစွဲသူ၏ ID နှင့် Email Fields များကိုသာဂရုပြုလျှင်၎င်းသည်စားပွဲတစ်ခုလုံးအစားဤနယ်ပယ်နှစ်ခုကိုသာမေးမြန်းရန်ပိုမိုထိရောက်လိမ့်မည်။
$sql = "SELECT id, email FROM users WHERE status = 'active'";
$stmt = $pdo->prepare($sql);
$stmt->execute();
သာလိုအပ်သောအချက်အလက်များကိုသာပြန်ပို့ခြင်းသည်ကွန်ယက်ထုတ်လွှင့်ခြင်းနှင့်မှတ်ဉာဏ်သုံးစွဲမှုကိုလျှော့ချနိုင်သည်။
Select Seleties များကိုပိုမိုကောင်းမွန်စေသောအခါအထက်ပါ optimization နည်းစနစ်များကိုထည့်သွင်းစဉ်းစားခြင်းသည်အထူးသဖြင့်အချက်အလက်အမြောက်အများကိုပြုပြင်သည့်အခါ application ၏စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ ကျိုးကြောင်းဆီလျော်သောအညွှန်းကိန်းရှာဖွေခြင်း, အခြေအနေများ, မှန်ကန်သော အသုံးပြုရန်နှင့်မလိုအပ်သော အချက်အလက်များ တင်ခြင်းကိုရှောင်ရှားခြင်းနှင့်မလိုအပ်သောအချက်အလက်များတင်ခြင်းကိုရှောင်ကြဉ်ပါ။