လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: Debug သည်စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်ပါသလား။ အမှန်တကယ်စမ်းသပ်ဒေတာဝေမျှ

MySQLI :: Debug သည်စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်ပါသလား။ အမှန်တကယ်စမ်းသပ်ဒေတာဝေမျှ

M66 2025-05-31

MySQLI :: Debug () Debug () ဒေတာဘေ့စ်၏ဆက်သွယ်မှုပြ problems နာများကို debing လုပ်ခြင်းသို့မဟုတ်နှေးကွေးသောမေးမြန်းချက်များကိုခွဲခြမ်းစိတ်ဖြာသည့်အခါအလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော်၎င်းသည်လျှောက်လွှာစွမ်းဆောင်ရည်ကိုသက်ရောက်မည်လား။ ဤသည် developer များမကြာခဏဂရုစိုက်တတ်ကြောင်းမေးခွန်းတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် MySQLI :: Debug ၏စွမ်းဆောင်ရည်သက်ရောက်မှုကိုအရေအတွက်ခွဲခြမ်းစိတ်ဖြာခြင်းကိုပြုလုပ်လိမ့်မည်။

MySQLI :: Debug ဆိုတာဘာလဲ

MySQLI :: Debug (string $ debug_options) သည် PHP ၏ MySQLI extension မှပေးထားသော debugging function ဖြစ်သည်။ ၎င်းကိုဖောက်သည် debugging output output ကိုဖွင့်ရန်နှင့်ဖိုင်များကိုမှတ်တမ်းတင်ရန်အသုံးပြုနိုင်သည်။ ဤ debugging သတင်းအချက်အလက်သည်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်ပြ ubl နာဖြေရှင်းခြင်းအတွက်အလွန်အသုံးဝင်သည်။ Disk ရေးသားခြင်းနှင့်အပိုဆောင်းမှတ်တမ်းမျိုးဆက်များကြောင့်ကွပ်မျက်မှုစွမ်းဆောင်ရည်ကိုလည်းအကျိုးသက်ရောက်နိုင်သည်။

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

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

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

  • operating system: Ubuntu 22.04

  • စမ်းသပ်မှုနည်းလမ်း - SQL ၏မေးမြန်းမှုကိုသုံးပါ။ MySQLI :: Debug ကို Enabled နှင့် Debug ကို Extread လုပ်ထားသည့်အတိုင်းအချိန် 10000 ကို execute လုပ်ပါ။

စမ်းသပ်ကုဒ်

 <?php
$host = 'localhost';
$user = 'root';
$password = 'your_password';
$dbname = 'test_db';

// စမ်းသပ် function ကို
function test_query_performance($use_debug = false) {
    global $host, $user, $password, $dbname;

    if ($use_debug) {
        mysqli::debug("d:t:o,/tmp/client.trace");
    }

    $mysqli = new mysqli($host, $user, $password, $dbname);

    if ($mysqli->connect_error) {
        die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
    }

    $start = microtime(true);
    for ($i = 0; $i < 10000; $i++) {
        $result = $mysqli->query("SELECT 1");
        if (!$result) {
            die("စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error);
        }
    }
    $end = microtime(true);

    $mysqli->close();
    return $end - $start;
}

// စမ်းသပ်နှင့် output ကိုရလဒ်များ
$time_without_debug = test_query_performance(false);
echo "မဖွင့်ပါ mysqli::debug အချိန်ကုန်စေသော: " . $time_without_debug . " စက်ဏန့်\n";

$time_with_debug = test_query_performance(true);
echo "ဖွင့်လှစ် mysqli::debug အချိန်ကုန်စေသော: " . $time_with_debug . " စက်ဏန့်\n";

echo "စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှု: " . ($time_with_debug - $time_without_debug) . " စက်ဏန့်\n";
?>

စမ်းသပ်မှုရလဒ်များဥပမာ (ကွဲပြားခြားနားသောပတ်ဝန်းကျင်တွင်ကွဲပြားနိုင်သည်)

 မဖွင့်ပါ mysqli::debug အချိန်ကုန်စေသော: 0.75 စက်ဏန့်
ဖွင့်လှစ် mysqli::debug အချိန်ကုန်စေသော: 2.93 စက်ဏန့်
စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှု: 2.18 စက်ဏန့်

သုံးသပ်ကြည့်ရှု

စမ်းသပ်မှုရလဒ်များအရ MySQLI :: Debug သည် စုံစမ်းမှု၏အချိန်ကုန်ခြင်းကိုသိသိသာသာတိုးပွားစေလိမ့်မည်။ မေးမြန်းချက်ပေါင်း 10,000 တွင် debugging function သည် 2 စက္ကန့်ခန့်ထပ်ထပ်ဆင့်ထပ်ဆင့်ပေးပြီးစွမ်းဆောင်ရည်အပေါ်သက်ရောက်မှုကိုလျစ်လျူရှုခြင်းမပြုနိုင်ကြောင်းဖော်ပြသည်။ အဓိကအကြောင်းရင်းမှာ Debug ကိုဖွင့်ထားပြီးနောက်ဒေတာဘေ့စ်လုပ်ငန်းတစ်ခုစီကို I / O 0 န်ထုပ် 0 န်ထုပ် 0 န်ဆောင်မှုကိုတိုးပွားစေသည့် log file ထဲတွင်မှတ်တမ်းတင်ထားလိမ့်မည်။

အကြံပေးချက်

  • Debugging Phase : MySQLI :: Debug ကို Debug ကို ထုတ်လုပ်ခြင်းပတ် 0 န်းကျင်တွင်ပိတ်ထားသင့်သည်။

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

  • Dats ://m66.netnet/mortmontoring အတွက် https://m66.net/monitoring ကဲ့သို့သောပရော်ဖက်ရှင်နယ်ကိရိယာများကိုအသုံးပြုရန်စဉ်းစားနိုင်သည်။

နိဂုံးချုပ်အားဖြင့်

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