လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_RESELT :: FETLEST_ALL လုပ်ခြင်း

MySQLI_RESELT :: FETLEST_ALL လုပ်ခြင်း

gitbox 2025-05-29

1 ။ mysqli_result :: fetch_all ၏လုပ်ငန်းနိယာမ

အဆိုပါ fetch_all () နည်းလမ်းသည်အချက်အလက်အားလုံးကိုအချက်အလက်အားလုံးကိုဆွဲယူပြီးတစ်ပြိုင်နက်တည်းမှတ်ကိုမှတ်ဉာဏ်ထဲသို့ဆွဲယူပြီးနှစ်ဖက်ရှိခင်းကျင်းမှုကိုပြန်လည်ရရှိခဲ့သည်။ အားသာချက်မှာ code သည်ရိုးရှင်းပြီးတပ်ဆင်ခြင်းကိုတိုက်ရိုက်ကိုင်တွယ်ရန်အဆင်ပြေသည်။ ဆိုးကျိုးများမှာရလဒ်သတ်မှတ်ချက်သည်အလွန်ကြီးမားသည့်အခါမှတ်ဥာဏ်သုံးစွဲမှုသည်မြင့်မားသည်။ ၎င်းသည်ပရိုဂရမ်ကိုတုန့်ပြန်မှုနှေးကွေးစေနိုင်သည်။

ဥပမာအားဖြင့်:

 <?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$result = $mysqli->query("SELECT * FROM large_table");

$data = $result->fetch_all(MYSQLI_ASSOC);
print_r($data);
?>

ဤကုဒ်တွင် Fetch_all () သည် ဒေတာအားလုံးကို ကြီးမားသော ဒေါ်လာဒေတာ ခင်းကျင်းမှုကိုတစ်ပြိုင်တည်းဖတ်လိမ့်မည်။


2 ။ ကြီးမားသောဒေတာပမာဏအောက်တွင်စွမ်းဆောင်ရည်စိန်ခေါ်မှုများ

ဒေတာ volume သည်သေးငယ်သော်လည်း Fetch_all () သည် စွမ်းဆောင်ရည်တွင်ပိတ်ဆို့မှုလုံးဝမရှိနှင့်အလွန်ထိရောက်သည်။ ရလဒ်အနေ ဖြင့် ထောင်ပေါင်းများစွာသောသောင်းချီသောထောင်ပေါင်းများစွာသောအတန်းများသို့ရောက်လျှင်, ရာနှင့်ချီသောအတန်းများသို့မဟုတ်ထိုထက်ပိုသော,

  • မှတ်ဉာဏ်အသုံးပြုမှုမြင့်တက်ခြင်း - ဒေတာအားလုံးကိုတစ်ပြိုင်နက်တည်းတင်ပြီးမှတ်ဉာဏ်အသုံးပြုမှုသည်အချက်အလက်ပမာဏနှင့်အချိုးကျသည်။

  • တုန့်ပြန်အချိန်တိုးခြင်း - တစ်ကြိမ်အချက်အလက်များဖတ်ရှုခြင်းကြောင့် CPU နှင့်မှတ်ဉာဏ်ဖိအားပေးမှုသည်နောက်ကျစေနိုင်သည်။

  • ဆာဗာတည်ငြိမ်မှု၏သက်ရောက်မှု - အလွန်အမင်းကိစ္စရပ်များတွင်မှတ်ဥာဏ်လျှံခြင်းနှင့် Script အချိန်ကုန်များဖြစ်နိုင်သည်။


3 ။ အမှန်တကယ်တိုင်းတာခြင်းခွဲခြမ်းစိတ်ဖြာခြင်း

စမ်းသပ်ပတ်ဝန်းကျင်

  • PHP ဗားရှင်း: 7.4

  • ဒေတာဘေ့စ: MySQL 8.0

  • Test Data Volume: 100,000, 100,000, 500,000 တန်း

  • ဟာ့ဒ်ဝဲ: 4 Core CPU, 8GB Memory

စမ်းသပ်ကုဒ်ဥပမာ

 <?php
$mysqli = new mysqli("gitbox.net", "user", "password", "test_db");

$start = microtime(true);
$result = $mysqli->query("SELECT * FROM big_table");
$data = $result->fetch_all(MYSQLI_ASSOC);
$end = microtime(true);

echo "Rows fetched: " . count($data) . "\n";
echo "Time taken: " . ($end - $start) . " seconds\n";
?>

စမ်းသပ်ရလဒ်များ (ဥပမာ)

ဒေတာပမာဏ အချိန် (စက္ကန့်) မှတ်ဉာဏ်အသုံးပြုမှု (MB) ပေြာဆို
10,000 0.15 30 စွမ်းဆောင်ရည်ကောင်းသော
100,000 1.8 280 သိသိသာသာနှေးကွေး
500,000 10.2 1400 မြင့်မားသောမှတ်ဉာဏ်အန္တရာယ်

စမ်းသပ်မှုရလဒ်များအရဒေတာပမာဏတိုးများလာသည်နှင့်အမျှတုန့်ပြန်မှုအချိန်နှင့်အချက်အလက်များအားမှတ်ဉာဏ်အသုံးပြုမှု () Fetch_all ၏မှတ်ဉာဏ်အသုံးပြုမှုသည် linearly သို့မဟုတ်အထက်ပိုမိုမြင့်မားလာသည်ကိုတွေ့မြင်နိုင်သည်။ ဒေတာ 500,000 ကိုထုတ်ယူသောအခါဆာဗာသည်အလွန်ဖိအားပေးမှုအောက်တွင်ရှိပြီးနောက်ကျမှုအန္တရာယ်ရှိနိုင်သည်။


4 ။ အကောင်းမြင်အကြံပြုချက်များ

  1. တစ်ချိန်တည်းတွင်ကြီးမားသောဒေတာများကိုမဖတ်ပါနှင့် Massive Data အတွက်အသုတ်သို့မဟုတ်လုပ်ငန်းစဉ်အားအတန်းဖြင့်ဖတ်ရန်အကြံပြုသည်။ ဥပမာအားဖြင့်, fetch_assoc () ကွင်းဆက်ကိုတစ် ဦး ချင်းစီရယူရန်သုံးပါ။

     <?php
    $result = $mysqli->query("SELECT * FROM big_table");
    while ($row = $result->fetch_assoc()) {
        // လိုင်းအားဖြင့်ထုတ်ယူခြင်းလိုင်း
    }
    ?>
    
  2. Pagination query ကိုသုံးပါ တစ်ခုတည်းတောင်းဆိုမှု၏ဖိအားကိုလျှော့ချရန် SQL ၏ ကန့်သတ်ချက် နှင့် offset မှအချက်အလက်များရှာဖွေခြင်းဒေတာကိုရှာဖွေခြင်းအချက်အလက်များကိုရှာဖွေခြင်း။

  3. အချက်အလက်ဖွဲ့စည်းပုံ၏အကျိုးသင့်အကြောင်းသင့်ရှိသောဒီဇိုင်း အချည်းနှီးသောနယ်ပယ်များကိုလျှော့ချပြီးအလွန်မလိုအပ်သောအချက်အလက်များထုတ်လွှင့်မှုကိုရှောင်ပါ။

  4. MySQL cache ကိုဖွင့်ပြီး query statembs <br> ဒေတာဘေ့စ်အဆင့်တွင်တုန့်ပြန်မှုစွမ်းဆောင်ရည်ကိုတိုးတက်အောင်လုပ်ပါ။


5 ။ အကျဉ်းချုပ်

mysqli_result :: fetch_all သည် အသေးစားနှင့်အလတ်စားအချက်အလက်များအတွက်အလွန်ကောင်းမွန်စွာလုပ်ဆောင်သည်။ ဖွံ့ဖြိုးရန်လွယ်ကူသည်။ သို့သော်ကြီးမားသောအချက်အလက်ပမာဏနှင့်ရင်ဆိုင်ရသောအခါမှတ်ဉာဏ်နှင့်အချိန် overhead သည်သိသာထင်ရှားပြီးနောက်ကျကျန်နေနိုင်သည်။ လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်အချက်အလက်ပမာဏအပေါ် အခြေခံ. အချက်အလက်ရယူသည့်နည်းလမ်းကို အခြေခံ. အချက်အလက်ရယူခြင်းနည်းလမ်းကိုရွေးချယ်ရန်,


ဤအမှန်တကယ်ခွဲခြမ်းစိတ်ဖြာခြင်းသည် Fetch_all ၏စွမ်းဆောင်ရည်ဝိသေသလက္ခဏာများကိုပိုမိုနားလည်ရန်နှင့်သင့်တော်သောဒေတာဘေ့စ်စာဖတ်ခြင်းအစီအစဉ်ကိုပိုမိုနားလည်ရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။ PHP နှင့်ဒေတာဘေ့စ်၏စွမ်းဆောင်ရည်အကောင်းမြင်ခြင်းနှင့်ပတ်သက်သောအသိပညာပိုမိုသိရှိလိုပါကတရားဝင်စာရွက်စာတမ်းများနှင့်လူထု၏အကောင်းဆုံးအလေ့အကျင့်များကိုကြည့်ပါ။