လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: Debug မှပိုမိုအားကောင်းသည့် debugging tools များ (XDebug + MySQL နှေးကွေးသောစုံစမ်းမှုမှတ်တမ်း)

MySQLI :: Debug မှပိုမိုအားကောင်းသည့် debugging tools များ (XDebug + MySQL နှေးကွေးသောစုံစမ်းမှုမှတ်တမ်း)

M66 2025-05-31

Daily PHP Development တွင် MySQLI :: Debug ကို များသောအားဖြင့်ဒေတာဘေ့စ် connection process နှင့် Execute အသေးစိတ်ကိုကြည့်ရှုရန်အသုံးပြုလေ့ရှိသည်။ Debugging အစောပိုင်းအဆင့်တွင်လုံလောက်သည်, ထို့ကြောင့် ဤဆောင်းပါးသည် MySQLI :: Debugging tool မှပိုမိုကောင်းမွန်သောအသွင်ကူးပြောင်းမှုကိရိယာများမှပိုမိုချောမွေ့စွာကူးပြောင်းရန်မည်သို့ချောချောမွေ့မွေ့ကူးပြောင်းနိုင်မည်နည်းအားဖြင့်သင့်အားယူပါ

1 ။ MySQLI :: Debug မလုံလောက်ဘူးလား။

MySQLI :: Debug (Debug) ၏လုပ်ဆောင်ချက်သည်အတော်လေးရိုးရှင်းပါသည်။ ၎င်းသည် MySQL 0 န်ဆောင်မှုခံယူသူစာကြည့်တိုက်အဆင့်တွင် Debug သတင်းအချက်အလက် output ကိုသာအသုံးပြုသည်။ ၎င်းသည်ဆက်သွယ်မှုနှင့်ကွပ်မျက်ခြင်းကဲ့သို့သောအဆင့်နိမ့်အချက်အလက်များကိုမှတ်တမ်းတင်ရန်အသုံးပြုသည်။

  • SQL ကွပ်မျက်အချိန်ကိုမပေးပါ

  • စီးပွားရေးယုတ္တိဗေဒနှင့်ကိုက်ညီရန်မလွယ်ကူ ;

  • output ပါဝင်သည့်အကြောင်းအရာသည်ရှုပ်ထွေးပြီးခွဲခြမ်းစိတ်ဖြာရန်ခက်ခဲသည် ,

  • ခေါ်ဆိုမှု stack သို့မဟုတ်မှတ်ဉာဏ်အသုံးပြုမှုကိုအလိုအလျောက်ခြေရာခံ။ မရပါ

နမူနာကုဒ်:

 mysqli::debug("d:t:o,/tmp/client.trace");
$db = new mysqli("localhost", "user", "password", "dbname");

၎င်းသည် /tmp/Cletient.trace မှ output ကိုဖြစ်နိုင်သော်လည်းစာဖတ်ခြင်းနှင့်ခွဲခြမ်းစိတ်ဖြာခြင်းသည်မတတ်နိုင်ပါ။

2 ။ XDebug: Code-Level Debugging + စွမ်းဆောင်ရည်ခွဲခြမ်းစိတ်ဖြာခြင်း

XDebug သည် PHP ၏အင်အားအကြီးဆုံး debugging extension များထဲမှတစ်ခုဖြစ်သည်။ ၎င်းသည် breakpoint debugging ူမန်မိာိုံင်ငံ,

XDebug ကို install လုပ်ပါ (PHP 8 ကိုဥပမာအဖြစ်ယူပါ):

 pecl install xdebug

ထို့နောက် php.ini တွင်ထည့်ပါ။

 zend_extension=xdebug
xdebug.mode=develop,trace,profile
xdebug.output_dir=/tmp

profiling

xdebug.mode = ပရိုဖိုင်းကို ဖွင့်ပြီးနောက်တောင်းဆိုမှုတစ်ခုစီသည် .CackreTeapy file ကိုထုတ်လုပ်လိမ့်မည်။ Database Query Functions အပါအ 0 င်ခွဲခြမ်းစိတ်ဖြာလုပ်ဆောင်မှုကိုဖွင့်လှစ်ရန် QCCRCRCRCROGRYM သို့မဟုတ် webgrind ကဲ့သို့သောကိရိယာများကိုသင်အသုံးပြုနိုင်သည်။

 $mysqli = new mysqli("localhost", "user", "password", "dbname");
$result = $mysqli->query("SELECT * FROM users WHERE email LIKE '%@m66.net'");

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

3 ။ MySQL နှေးကွေးသောစုံစမ်းမှုမှတ်တမ်း - SQL Execution ထိရောက်မှုကိုအာရုံစိုက်ပါ

MySQL နှေးကွေးသော Query Log သည်ဒေတာဘေ့စ်၏အတ္ထုပ္ပတ္တိများသည်သတ်မှတ်ထားသောတံခါးခုံများထက် ကျော်လွန်. SQL ထုတ်ပြန်ချက်များကိုမှတ်တမ်းတင်ထားသည့်ဒေတာဘေ့စ်၏ဇာတိလုပ်ဆောင်ချက်ဖြစ်သည်။

နှေးကွေးသောစုံစမ်းမှုမှတ်တမ်းများကိုဖွင့်ပါ (My.CNF ဥပမာ):

 [mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_queries_not_using_indexes = 1

တည်ဆောက်ပြီးနောက် MySQL ဝန်ဆောင်မှုကိုပြန်လည်စတင်ပါ။

 sudo systemctl restart mysql

အကြံပြုထားသောခွဲခြမ်းစိတ်ဖြာကိရိယာများ -

  • MySQLTOPTOPSLOW : လျင်မြန်စွာစုံစမ်းမှုဖြန့်ဖြူးခြင်းအား command line တွင်လျင်မြန်စွာကြည့်ပါ။

  • PT-query-digest : Percona Toolkit မှပေးထားသောအဆင့်မြင့်ခွဲခြမ်းစိတ်ဖြာမှုကိရိယာများ,

  • ဝက်ဘ်ကိရိယာများ - သင် https://m66.net/analyze -log သို့ logs များကိုလည်း upload လုပ်နိုင်သည်။

4 ။ ပေါင်းစပ်အသုံးပြုမှုအတွက်အကောင်းဆုံးအလေ့အကျင့်များ

  1. Development Page - ဖုန်းခေါ်ဆိုခြင်းနှင့်ဒေတာဘေ့စ်ခေါ်ဆိုမှုများကိုကြည့်ရှုရန် XDebug ကိုအသုံးပြုပါ။

  2. စမ်းသပ်ခြင်းအဆင့် - စွမ်းဆောင်ရည်နမူနာအတွက် XDebug Profiling mode ကိုဖွင့်;

  3. ထုတ်လုပ်မှုအဆင့် - MySQL နှေးကွေးသောစုံစမ်းမှုမှတ်တမ်းများနှင့် Periodic ခွဲခြမ်းစိတ်ဖြာမှုကိုဖွင့်ပါ။

  4. အလိုအလျောက်မှတ်တမ်းခွဲခြမ်းစိတ်ဖြာ မှု

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    mysqli MySQL