လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဒေတာဘေ့စ်လည်ပတ်မှုအသုတ်သွင်းလုပ်ဆောင်ရန် Array_chunk ကိုအသုံးပြုနည်း

ဒေတာဘေ့စ်လည်ပတ်မှုအသုတ်သွင်းလုပ်ဆောင်ရန် Array_chunk ကိုအသုံးပြုနည်း

M66 2025-04-26

ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်သောအခါဒေတာများကိုထည့်သွင်းခြင်းအားဖြင့်စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ပေးသည်။ PHP သည်ဤစစ်ဆင်ရေးကိုပိုမိုကောင်းမွန်စေရန်နည်းလမ်းများစွာကို array_chunk သည်ကြီးမားသောလက်တွေ့ကျသောကိရိယာများကိုသေးငယ်သည့်တပ်ဆင်ထားသည့်စစ်ဆင်ရေးများကိုထိရောက်စွာဖြတ်တောက်ခြင်း,

1 ။ Array_chunk ဆိုတာဘာလဲ။

Array_chunk သည် PHP တွင် Array function တစ်ခုဖြစ်သည်။ သေးငယ်တဲ့ array တစ်ခုချင်းစီမှာရှိတဲ့ဒြပ်စင်အရေအတွက်ကိုသင်သတ်မှတ်နိုင်ပါတယ်။ ၎င်း၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_chunk(array $array, int $size, bool $preserve_keys = false): array
  • $ array : ဖြတ်ခံရဖို့လိုအပ်တဲ့ array ။

  • $ အရွယ်အစား - သေးငယ်တဲ့ array တစ်ခုစီ၏အရွယ်အစား။

  • $ Presentify_Keys : မူရင်းခင်းကျင်းမှု၏သော့ချက်အမည်ကိုဆက်လက်ထိန်းသိမ်းရန်ရှိမရှိ, ပုံမှန်သည် မှား သည်။

2 ။ batch သွင်းအကောင်အထည်ဖော်ရန် array_chunk ကို သုံးပါ

ဒေတာဘေ့စ်သို့ဒေတာအသုတ်တစ်ခုထည့်ရန်လိုအပ်သည်ဆိုပါစို့။ တ ဦး တည်းအားဖြင့်တ ဦး တည်းထည့်သွင်းခြင်းကမတတ်နိုင်သောကြောင့်, ဒေတာများကိုသေးငယ်သောအရာများသို့ခုတ်လှဲရန်ကျွန်ုပ်တို့ကို array_chunk ကို သုံးနိုင်သည်။

array_chunk ကို သုံး. အသုတ်သွင်းခြင်းကိုအကောင်အထည်ဖော်ရန်ဥပမာတစ်ခုမှာ -

 <?php
// ဒေတာအရင်းအမြစ်များကိုတုပ
$data = [
    ['name' => 'Alice', 'email' => 'alice@m66.net'],
    ['name' => 'Bob', 'email' => 'bob@m66.net'],
    ['name' => 'Charlie', 'email' => 'charlie@m66.net'],
    // ...နောက်ထပ်အချက်အလက်များ
];

// တစ်ခုချင်းစီကိုသုတ်တစ်ခု၏အရွယ်အစားကိုသတ်မှတ်
$batchSize = 100;

// အသုံးပြု array_chunk ဒေတာကိုသေးငယ်တဲ့သုတ်အဖြစ်ခွဲ
$dataChunks = array_chunk($data, $batchSize);

// ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');

// ငွေပေးငွေယူတစ်ခုစတင်ပါ
$pdo->beginTransaction();

foreach ($dataChunks as $chunk) {
    // Batch Inserts ကိုတည်ဆောက်ပါ SQL အသေအချာပေြာဆိုချက်
    $placeholders = [];
    $values = [];
    
    foreach ($chunk as $row) {
        $placeholders[] = "(?, ?)";
        $values[] = $row['name'];
        $values[] = $row['email'];
    }

    // ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်
    $sql = "INSERT INTO users (name, email) VALUES " . implode(", ", $placeholders);
    $stmt = $pdo->prepare($sql);

    // အသုတ်သွင်းလုပ်ဆောင်ပါ
    $stmt->execute($values);
}

// တင်သွင်းမှုတင်သွင်း
$pdo->commit();

echo "ဒေတာထည့်သွင်းပြီးစီးခဲ့သည်!";
?>

3 ။ code ခွဲခြမ်းစိတ်ဖြာ

  1. ဒေတာအရင်းအမြစ် - အသုံးပြုသူ၏အမည်နှင့်အီးမေးလ်လိပ်စာပါ 0 င်သောအချက်အလက်များအစုတခုကို Simulated လုပ်ပြီး အီးမေးလ် ဒိုမိန်းကို M66.net ဖြင့်အစားထိုးလိုက်သည်။

  2. Batch Processing - အချက်အလက်များကိုသတ်မှတ်ထားသောအရွယ်အစား (ဥပမာ, 100) တွင်အချက်အလက်များကိုခွဲထားရန် (ဥပမာ, 100) တွင်အချက်အလက်များကိုထည့်သွင်းရန် array_chunk ကို အသုံးပြုသည်။

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

  4. Batch Insert SQL : ကျွန်ုပ်တို့သည် SQL ထုတ်ပြန်ချက်များအားဒိုင်းနယမ်းရှင်းရှင်းလင်းလင်းတည်ဆောက်ခြင်းဖြင့်အသုတ်ကိုထည့်သွင်းသည်။ ဒီဥပမာမှာ Batch တစ်ခုစီအတွက်ထည့်သွင်းမှုတစ်ခုချင်းစီအတွက် ကြေငြာချက် တစ်ခုစီအတွက်ဒေတာတစ်ခုစီကို SQL ကြေငြာချက်တစ်ချောင်းကိုနေရာချထားပေးတယ်။

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

  • ကျိုးကြောင်းဆီလျော်စွာအသုတ်အရွယ်အစားကိုသတ်မှတ်ပါ - array_chunk ၏အသုတ်အရွယ်အစားသည်စွမ်းဆောင်ရည်ကိုထိခိုက်သောအရေးကြီးသောအချက်တစ်ချက်ဖြစ်သည်။ အကယ်. အသုတ်သည်သေးငယ်လွန်းပါကအချိန်ကိုအကြိမ်ပေါင်းများစွာသည်အချိန်တိုင်းတွင်ပြုလုပ်သောအချိန်ကိုဖြည့်ဆည်းပေးနိုင်သည်။ ၎င်းသည်စွမ်းဆောင်ရည်ပျက်စီးခြင်းသို့ရောက်လိမ့်မည်။ အကယ်. အသုတ်သည်ကြီးမားလွန်းပါက၎င်းသည်မှတ်ဥာဏ်အလွန်အကျွံသောက်သုံးခြင်းသို့မဟုတ်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုအချိန်ကုန်သို့ချိတ်ဆက်နိုင်သည်။ ထို့ကြောင့်သင့်လျော်သောအသုတ်အရွယ်အစားကိုအမှန်တကယ်အခြေအနေနှင့်အညီချိန်ညှိရန်လိုအပ်သည်။ ဘုံအသုတ်အရွယ်အစားသည် 100 သို့မဟုတ် 1000 ဖြစ်သည်။

  • အရောင်းအ 0 ယ်များအသုံးပြုခြင်းသည် အထက်တွင်ဖော်ပြခဲ့သည့်အတိုင်းအရောင်းအ 0 ယ်များကိုဖွင့်ခြင်းနှင့်အသုတ်ထည့်သွင်းမှုများကိုလုပ်ဆောင်သောအခါစွမ်းဆောင်ရည်ကိုတိုးတက်စေသည်။

  • အမှားကိုင်တွယ်ခြင်း - အမှန်တကယ်စီမံကိန်းများအနေဖြင့်,

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

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