လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDostatement နှင့်အတူ Selectatics တွင်ရှာဖွေမှုရှာဖွေခြင်းအတွက်အချက်အလက်များကိုပြန်လည်ရယူခြင်း

PDostatement နှင့်အတူ Selectatics တွင်ရှာဖွေမှုရှာဖွေခြင်းအတွက်အချက်အလက်များကိုပြန်လည်ရယူခြင်း

gitbox 2025-05-28

Selectionies များကို ရွေးချယ်ခြင်းသည် များသောအားဖြင့်ဒေတာဆိုင်ရာအချက်အလက်များအားဒေတာအမြောက်အမြားမှတိကျသောသတင်းအချက်အလက်များကိုဖြည့်ဆည်းရန်လိုအပ်သည့်အခါအသုံးအများဆုံးလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ သို့သော်ဒေတာများကိုထိရောက်စွာရှာဖွေရန်နှင့်စုံစမ်းမှုရလဒ်များ၏အတန်းအရေအတွက်ကိုတိကျစွာရှာဖွေရန်နှင့်တိကျစွာရှာဖွေခြင်းသည် developer များမကြာခဏရင်ဆိုင်နေရသည့်ပြ a နာတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် ရွေးချယ်မှုဆိုင်ရာ မေးမြန်းချက်များတွင်ဒေတာများကိုပြန်လည်ရယူခြင်းကိုပိုမိုကောင်းမွန်စေရန်နှင့်ရလဒ်ကိုရရန် PDostatement :: Rowcount ကို မှန်ကန်စွာအသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ query speed ကိုပိုကောင်းအောင်အညွှန်းကိန်းများကိုသုံးပါ

Selection queries များကိုရွေးချယ်သည့်အခါစုံစမ်းမှုအခြေအနေများသည်ကြီးမားသောအချက်အလက်အတွဲများဖြင့်စားပွဲများပါ 0 င်ပါကထိရောက်မှုပြ problem နာသည်ထင်ရှားလာလိမ့်မည်။ မေးမြန်းချက်များကိုအရှိန်မြှင့်ရန်, စားပွဲ၌မကြာခဏမေးမြန်းခြင်းများသို့အညွှန်းကိန်းများထည့်ခြင်းဖြင့်မေးမြန်းချက်များကိုသင်ပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။

ဥပမာအားဖြင့်, အသုံးပြုသူများကို ခေါ်သည့်စားပွဲတစ်ခုရှိသည်ဆိုပါစို့ အီးမေးလ် အကွက်ပေါ်တွင်အညွှန်းတစ်ခုဖန်တီးနိုင်သည်။

 CREATE INDEX idx_email ON users (email);

ဤနည်းအားဖြင့်ဒေတာဘေ့စ်သည်သတ်မှတ်ချက်များပိုမိုမြန်ဆန်စွာကိုက်ညီသောအတန်းများကိုရှာဖွေရန်အညွှန်းကိန်းများကိုသုံးနိုင်သည်။

2 ။ Pagination query ကိုသုံးပါ

ဒေတာဇယားတွင်အချက်အလက်များအလိုက်ထောင်ပေါင်းများစွာသောအချက်အလက်များအရဒေတာအားလုံးကိုတစ်ပြိုင်နက်ပြန်လည်ရယူရန်နှင့်မှတ်ဥာဏ်လျှံကိုဖြစ်စေရန်ထိရောက်သောကြောင့်ထိရောက်မှုမရှိပါ။ ဤအခြေအနေကိုပိုမိုကောင်းမွန်စေရန် 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 မှတစ်ဆင့်ဒေတာပြန်လည်ရယူခြင်းတစ်ခုချင်းစီတွင်ဝန်ကိုလျှော့ချနိုင်ပြီးလျှောက်လွှာ၏တုံ့ပြန်မှုမြန်နှုန်းကိုတိုးတက်စေနိုင်သည်။

3 ။ အခြေအနေကိုက န့ ်သတ်ရန်အခြေအနေများကိုကန့်သတ်ရန်အခြေအနေများအတွက်သင့်လျော်သောသင့်လျော်သောအသုံးပြုပါ

Select selection မေးမြန်းချက်များကိုဖျော်ဖြေတင်ဆက်သည့်အခါပြန်လည်ရယူထားသောဒေတာအကွာအဝေးကိုသတ်မှတ်ရန်အခြေအနေများကိုသတ်မှတ်ရန်အခြေအနေများကို အသုံးပြု. သင့် လျော်သောအလုပ်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ ဥပမာအားဖြင့်, သင်သည်သက်ဆိုင်ရာအသုံးပြုသူများ၏သက်ဆိုင်ရာအချက်အလက်များကိုသာဂရုစိုက်ပါ

 $sql = "SELECT * FROM users WHERE status = 'active' LIMIT 10";
$stmt = $pdo->prepare($sql);
$stmt->execute();

သတ်မှတ်ချက်များကိုသတ်သတ်မှတ်မှတ်အကွာအဝေးတစ်ခုသို့ကန့်သတ်ခြင်းအားဖြင့်ဒေတာဘေ့စ်သည်အချက်အလက်အားလုံးကိုမပြန်ဘဲစံသတ်မှတ်ချက်များနှင့်ကိုက်ညီသောအချက်အလက်များကိုစစ်ထုတ်နိုင်သည်။

4 ။ PDostatement :: Rows ကိုမှန်ကန်စွာအသုံးပြုပါ။

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် 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;

5 ။ မလိုအပ်သောအချက်အလက်များကိုလျှော့ချပါ

Selecties ကိုရွေးချယ် သည့်အခါ, မလိုအပ်သောလယ်ကွင်းများကိုမေးမြန်းခြင်းကိုရှောင်ရန်ကြိုးစားပါ။ ဥပမာအားဖြင့်, သင်သည်သုံးစွဲသူ၏ ID နှင့် Email Fields များကိုသာဂရုပြုလျှင်၎င်းသည်စားပွဲတစ်ခုလုံးအစားဤနယ်ပယ်နှစ်ခုကိုသာမေးမြန်းရန်ပိုမိုထိရောက်လိမ့်မည်။

 $sql = "SELECT id, email FROM users WHERE status = 'active'";
$stmt = $pdo->prepare($sql);
$stmt->execute();

သာလိုအပ်သောအချက်အလက်များကိုသာပြန်ပို့ခြင်းသည်ကွန်ယက်ထုတ်လွှင့်ခြင်းနှင့်မှတ်ဉာဏ်သုံးစွဲမှုကိုလျှော့ချနိုင်သည်။

Select Seleties များကိုပိုမိုကောင်းမွန်စေသောအခါအထက်ပါ optimization နည်းစနစ်များကိုထည့်သွင်းစဉ်းစားခြင်းသည်အထူးသဖြင့်အချက်အလက်အမြောက်အများကိုပြုပြင်သည့်အခါ application ၏စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ ကျိုးကြောင်းဆီလျော်သောအညွှန်းကိန်းရှာဖွေခြင်း, အခြေအနေများ, မှန်ကန်သော အသုံးပြုရန်နှင့်မလိုအပ်သော အချက်အလက်များ တင်ခြင်းကိုရှောင်ရှားခြင်းနှင့်မလိုအပ်သောအချက်အလက်များတင်ခြင်းကိုရှောင်ကြဉ်ပါ။