MySQL ဒေတာဘေ့စ်များကိုစီမံရန် PHP ကိုအသုံးပြုသည့်အခါ MySQL_FETCE_ARRAY သည် query real query quert quert quert quert quere rol quert ားဖြင့်ရယူရန်အများအားဖြင့်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ရလဒ် set သည်အလွန်ကြီးမားသည့်အခါ MySQL_FETCH_ARRARY ကို အသုံးပြု. တိုက်ရိုက်စွမ်းဆောင်ရည်မြှင့်တင်ခြင်း, ဤဆောင်းပါးသည်တိကျသောကုဒ်များကိုပိုမိုထိရောက်စွာလုပ်ဆောင်ရန်နှင့်ရလဒ်များကိုပြန်ပို့သောအခါစွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန်နှင့်စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန်နှင့်ပိုမိုကောင်းမွန်သောလုပ်ဆောင်မှုများကိုဖော်ပြရန်သတ်သတ်မှတ်မှတ်ကုဒ်များကိုပေါင်းစပ်ထားသည်။
MySQL_FETCE_ARRAY သည်ရလဒ် set line မှဒေတာများကိုရယူရန်ဖြစ်သည်။ ဒေတာအားလုံးကိုမှတ်ဉာဏ်ထဲထည့်ခြင်းကိုရှောင်ကြဉ်သော်လည်း အကယ်. စုံစမ်းမှုရလဒ်သည်ကြီးမားလွန်းပါက၎င်းသည်အရင်းအမြစ်အမြောက်အများကိုသိမ်းပိုက်ဆဲဖြစ်သည်။
အကောင်းဆုံးစိတ်ကူးများ :
Pagination Query ကိုအချိန်တစ်ခုတည်းတွင်ပြန်လာသောအချက်အလက်ပမာဏကိုကန့်သတ်ခြင်း
data step ကိုအဆင့်ဆင့်အားဖြင့်လုပ်ဆောင်ရန် cursor မေးမြန်းမှုကိုသုံးပါ
Paging သည်ရလဒ်အစုအဝေးများကိုပြုပြင်ရန်အတွက်ဘုံနည်းလမ်းဖြစ်သည်။ ကန့်သတ်ချက် နှင့် offset မှတဆင့်မှတ်ဉာဏ်ပေါက်ကွဲမှုများကိုရှောင်ရှားရန်ဒေတာအစင်းအရေအတွက်ကိုတိုင်းထိန်းချုပ်ထားသည်။
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$limit = 100; // စာမျက်နှာတစ်ခုချင်းစီအတွက်ဘားအရေအတွက်
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$offset = ($page - 1) * $limit;
$sql = "SELECT * FROM large_table LIMIT $limit OFFSET $offset";
$result = $mysqli->query($sql);
while ($row = mysql_fetch_array($result)) {
// ဒေတာတစ်ခုချင်းစီကိုအတန်းတိုင်းလုပ်ငန်းစဉ်
print_r($row);
}
?>
၎င်းသည်ဒေတာများကိုသေးငယ်သောအတုံးများထဲသို့ ခွဲ. ဆာဗာဖိအားကိုလျှော့ချခြင်း,
MySQL_ * စီးရီးလုပ်ဆောင်ချက်များကို PHP 5.5 ကတည်းကပယ်ဖျက်ခဲ့သည်။ MySQLI သို့မဟုတ် PDO ကို အသုံးပြုရန်အကြံပြုသည်။ သူတို့ဟာပိုကောင်းအောင်လုပ်ပြီး preprocessing ထုတ်ပြန်ချက်များကိုထောက်ခံပါတယ်။
ဥပမာ mysqli_fetchetch_array ကိုအသုံးပြုပြီး
<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$sql = "SELECT * FROM large_table";
$result = $mysqli->query($sql);
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
// ဒေတာတစ်ခုချင်းစီကိုအတန်းတိုင်းလုပ်ငန်းစဉ်
print_r($row);
}
?>
Select Select * Select * ကို သာရှာဖွေပါ,
$sql = "SELECT id, name, email FROM large_table LIMIT 100";
ရှာဖွေမှုအခြေအနေများတွင်သင့်လျော်သောအညွှန်းကိန်းများရှိကြောင်းသေချာစေရန်, စားပွဲအပြည့်ကိုစကင်ဖတ်စစ်ဆေးရန်နှင့်စုံစမ်းမှုအမြန်နှုန်းကိုတိုးတက်အောင်လုပ်ပါ။
CREATE INDEX idx_name ON large_table(name);
အကယ်. ဒေတာဘေ့စ်က၎င်းကိုထောက်ခံပါက PHP ဘက်မှမှတ်ဉာဏ်အသုံးပြုမှုကိုလျှော့ချရန်ဒေတာဘေ့စ်ဘေးထွက်တွင်ဒေတာဘက်တွင်အချက်အလက်များကိုသုံးရန် cursors သို့မဟုတ် store လုပ်ထုံးလုပ်နည်းများကိုသုံးနိုင်သည်။
အချက်အလက်အမြောက်အများကိုလုပ်ဆောင်ရန်လိုအပ်သည့် script များအရမှတ်ဥာဏ်ကန့်သတ်ချက်များနှင့်ကွပ်မျက်ချိန်ကိုယာယီတိုးမြှင့်နိုင်သည်။ သို့သော်၎င်းသည်အခြေခံကျသောဖြေရှင်းနည်းမဟုတ်ဘဲကယ်ဆယ်ရေးနည်းလမ်းတစ်ခုမျှသာဖြစ်သည်။
ini_set('memory_limit', '512M');
set_time_limit(300);
ဒေတာအားလုံးကိုတစ်ပြိုင်နက်တည်းတင်ခြင်းကိုရှောင်ပါ,
MySQLI သို့မဟုတ် PDO နှင့်အတူစွန့်ပစ်ထားသော MySQL_ * function ကိုအစားထိုးလိုက်ပါ
Select ကိုရှောင်ရှားရန်စုံစမ်းမှုစဉ်အတွင်းလိုအပ်သောလယ်ကွင်းများကိုသာရွေးချယ်ပါ။ *
ဒေတာဘေ့စ်စုံစမ်းမှုသည်အညွှန်းကိန်းအထောက်အပံ့များရှိကြောင်းနှင့်စုံစမ်းမှုစွမ်းအားစွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်သေချာပါစေ
PHP ဘေးထွက်ဖိအားကို server-side cursors သို့မဟုတ်သိုလှောင်ထားသောလုပ်ထုံးလုပ်နည်းများကို အသုံးပြု. လျှော့ချပါ
ဆင်ခြင်တုံတရားကိုဖြည့်စွက် optimization တိုင်းတာမှုအနေဖြင့် PHP configuration ကိုပြင်ဆင်ပါ
အထက်ပါနည်းလမ်းများအရ MySQL_FETCE_ARRAY ကို အသုံးပြု. စွမ်းဆောင်ရည်နှင့်စွမ်းဆောင်ရည်သည်ရလဒ်အစုအဝေးများကိုပြုလုပ်ရန်အလွန်တိုးတက်လာနိုင်သည်။