လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Devicatic Database Query ကိုရှောင်ရှားရန် static cache ကို အသုံးပြု. MySQLI_RESult function ကိုပိုမိုကောင်းမွန်အောင်လုပ်နည်း။

Devicatic Database Query ကိုရှောင်ရှားရန် static cache ကို အသုံးပြု. MySQLI_RESult function ကိုပိုမိုကောင်းမွန်အောင်လုပ်နည်း။

M66 2025-06-15

PHP applications များကိုတီထွင်သောအခါအထူးသဖြင့်ဒေတာဘေ့စ်လုပ်ငန်းများပါ 0 င်သောစီမံကိန်းများတွင်ဒေတာဘေ့စ်မေးမြန်းချက်များ၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်လုပ်ရန်အလွန်အရေးကြီးသည်။ MySQLi_Result သည် MySQL ၏စုံစမ်းမှု၏ရလဒ်များကိုကိုင်တွယ်ရန် PHP တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်, သို့သော်အချို့သောကိစ္စရပ်များတွင်ကျွန်ုပ်တို့သည်တူညီသောဒေတာဘေ့စ်စုံစမ်းမှုကိုအကြိမ်ကြိမ်လုပ်ဆောင်သည်။ ထပ်ခါတလဲလဲမေးမြန်းခြင်းများကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည်ဤမေးမြန်းချက်များကိုပိုမိုကောင်းမွန်စေရန် static cache နည်းစနစ်များကိုသုံးနိုင်သည်။ ဤဆောင်းပါးသည်မလိုအပ်သောဒေတာဘေ့စ်ဝင်ရောက်ခွင့်ကိုလျှော့ချရန် MySQLI_RESURT function ကိုပိုမိုကောင်းမွန်စေရန် static cache ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1

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

2 ။ static cache နှင့်အတူ MySQLI_RESULE ကို အကောင်းမြင်ပါ

ကျွန်ုပ်တို့တွင်ရိုးရှင်းသော MySQL Query တစ်ခုရှိသည်ဆိုပါစို့။

 <?php
// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$mysqli = new mysqli("localhost", "user", "password", "database");

// ဒေတာဘေ့စ်ကိုမေးမြန်းပါ
$query = "SELECT * FROM users WHERE id = 1";
$result = $mysqli->query($query);

// လုပ်ငန်းစဉ်မေးမြန်းချက်ရလဒ်များ
if ($result) {
    $row = $result->fetch_assoc();
    echo "User Name: " . $row['name'];
}
?>

ဤကိစ္စတွင်, ဤမေးမြန်းမှုကွပ်မျက်ခံရတိုင်းဒေတာဗေ့စ်ကိုဝင်ရောက်ကြည့်ရှုနိုင်ပြီးအလားတူမေးမြန်းမှုကိုကွပ်မျက်ခံရသည်။ ဤလုပ်ငန်းစဉ်ကိုပိုမိုကောင်းမွန်စေရန်ပထမမေးခွန်းကိုနောက်ဆက်တွဲမေးခွန်းများဖြင့်အချက်အလက်များကိုနောက်တစ်ကြိမ်ထပ်မံတောင်းခံမည့်အစားအချက်အလက်များကို cache မှတိုက်ရိုက်သိမ်းဆည်းနိုင်သည်။

3 ။ static variable တွေကို cache အဖြစ်အသုံးပြုပါ

PHP တွင် static cache ကိုအကောင်အထည်ဖော်ရန်လွယ်ကူသောနည်းလမ်းတစ်ခုရှိသည်။ ၎င်းသည် static variable များကိုအသုံးပြုရန်ဖြစ်သည်။ တည်ငြိမ်သော variable များသည် function calls များအကြားသူတို့၏တန်ဖိုးများကိုထိန်းသိမ်းထားပြီးမေးမြန်းမှုကိုရလဒ်များအကြားသိမ်းဆည်းထားနိုင်သည်။ အထက်ပါကုဒ်ကို static cache ကိုအသုံးပြုရန်မည်သို့ပြင်ဆင်ရမည်နည်း။

 <?php
// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$mysqli = new mysqli("localhost", "user", "password", "database");

// cache query query ကိုရလဒ်များအတွက် static variable ကိုသတ်မှတ်ပါ
function getUserById($id) {
    static $cache = [];

    // အသုံးပြုသူ၏စုံစမ်းမှုရလဒ်များသည် cache ထဲတွင်ရှိပြီးသားဖြစ်ပါက,Carded ဒေတာကိုတိုက်ရိုက်ပြန်ပို့ပါ
    if (isset($cache[$id])) {
        return $cache[$id];
    }

    // cache မရှိပါက,ဒေတာဘေ့စ်စုံစမ်းမှုလုပ်ဆောင်ပါ
    global $mysqli;
    $query = "SELECT * FROM users WHERE id = ?";
    $stmt = $mysqli->prepare($query);
    $stmt->bind_param("i", $id);
    $stmt->execute();
    $result = $stmt->get_result();

    // အဆိုပါ query ကိုအောင်မြင်သောလျှင်,cache ကိုသိမ်းဆည်းပါ
    if ($result) {
        $row = $result->fetch_assoc();
        $cache[$id] = $row;  // cache ကိုသိမ်းဆည်းပါ
        return $row;
    }

    return null;
}

// cache နှင့်အတူအသုံးပြုသူ query query
$user = getUserById(1);
if ($user) {
    echo "User Name: " . $user['name'];
}
?>

အထက်ပါကုဒ်တွင် GetuserBerbyID လုပ်ဆောင်မှုသည်စုံစမ်းမှုရလဒ်များကိုသိုလှောင်ရန် status variable ကို $ cache ကို အသုံးပြုသည်။ အသုံးပြုသူတစ် ဦး သည်ပထမဆုံးအကြိမ်မေးမြန်းသောအခါရလဒ်ကို $ cache ခင်း array တွင်သိမ်းဆည်းထားလိမ့်မည်။ ထို့နောက်အသုံးပြုသူတူညီသောကိုထပ်မံမေးမြန်းသောအခါ၎င်းကို $ cache မှတိုက်ရိုက်ပြန်လည်ရယူပြီးဒေတာဘေ့စ်ကိုမသုံးတော့ပါ။

4 ။ cache စာကြည့်တိုက်နှင့်အတူပိုကောင်းအောင်

တည်ငြိမ်သော variable များသည်ရိုးရှင်းသော cache များအတွက်အလွန်ထိရောက်သော်လည်း, ရှုပ်ထွေးသော applications များအတွက် Redis သို့မဟုတ် Memis ကဲ့သို့သောသီးခြား cache စာကြည့်တိုက်ကိုအသုံးပြုရန်သို့မဟုတ်တောင်းဆိုမှုများအတွက် cache ကိုမျှဝေရန်လိုသည်။ ဤ cache systems များသည်ဖြန့်ဝေထားသော cache,

ဥပမာ - Redis ကို cache အဖြစ်အသုံးပြုခြင်း

 <?php
// ဖန်တီး Redis ဆက်
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$mysqli = new mysqli("localhost", "user", "password", "database");

function getUserById($id) {
    global $redis, $mysqli;

    // စစ်ဆေးကြည့်ရှု Redis အဲဒီမှာ cacheed ဒေတာရှိပါသလား
    $cachedData = $redis->get("user_{$id}");
    if ($cachedData) {
        return unserialize($cachedData);  // cache မှဒေတာရယူပါ
    }

    // cache မရှိပါက,ဒေတာဘေ့စ်စုံစမ်းမှုလုပ်ဆောင်ပါ
    $query = "SELECT * FROM users WHERE id = ?";
    $stmt = $mysqli->prepare($query);
    $stmt->bind_param("i", $id);
    $stmt->execute();
    $result = $stmt->get_result();

    // အဆိုပါ query ကိုအောင်မြင်သောလျှင်,ကယ်ဆယ် Redis သိုကာတာ
    if ($result) {
        $row = $result->fetch_assoc();
        $redis->set("user_{$id}", serialize($row), 3600);  // သိုကာတာ1နာရီ
        return $row;
    }

    return null;
}

// cache နှင့်အတူအသုံးပြုသူ query query
$user = getUserById(1);
if ($user) {
    echo "User Name: " . $user['name'];
}
?>

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

5 ။ cache ကို invalidation နှင့် update ကို

cache နှင့်အတူအရေးကြီးသောအရေးအသားတစ်ခုမှာ cache ပျက်ကွက်ခြင်းသို့မဟုတ် update ကိုဆိုလိုသည်။ ဒေတာဘေ့စ်၏အချက်အလက်များရှိအချက်အလက်များသည် cache ထဲရှိဒေတာများကိုညှိနှိုင်းရန်သို့မဟုတ်ထပ်တူပြုခြင်းကိုရှင်းလင်းရန်လိုအပ်သည်။ ဘုံနည်းဗျူဟာများမှာ -

  • အချိန်မီ Update Update Cache - cache ကိုပုံမှန်ရှင်းလင်းပြီးဒေတာဘေ့စ်ကို update cache ကိုပြန်လည်ရှာဖွေပါ။

  • Cache ကိုကိုယ်တိုင်လက်ဖြင့် Update လုပ်ပါ ။ ဒေတာအပြောင်းအလဲများကိုပြောင်းလဲသည့်အခါ, သက်ဆိုင်ရာ cache ကိုကိုယ်တိုင်ရှင်းလင်းပါသို့မဟုတ် cache ကို update လုပ်ပါ။

အကျဉ်းချုပ်

Static cache သို့မဟုတ် cache စာကြည့်တိုက်များကို redis သို့မဟုတ် memcached ကဲ့သို့သောစာသင်ခန်းများကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ထပ်ခါတလဲလဲဒေတာဘေ့စ်မေးမြန်းချက်များကိုထပ်မံအကောင်အထည်ဖော်နိုင်ပြီးကျွန်ုပ်တို့၏လျှောက်လွှာ၏စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်အောင်လုပ်နိုင်သည်။ Cache ကိုအကောင်အထည်ဖော်သောအခါ cache ပျက်ကွက်မှုမဟာဗျူဟာသည်အချက်အလက်များ၏တိကျမှန်ကန်မှုနှင့်ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်စဉ်းစားရန်လိုအပ်သည်။ MySQLI_RESULT ၏လုပ်ဆောင်မှုကိုအသေးစိတ်ရှာဖွေခြင်းကိုပိုမိုကောင်းမွန်အောင်လုပ်ရန်မည်သို့ပိုမိုကောင်းမွန်အောင်နားလည်နိုင်သည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်ဤဆောင်းပါးသည်သင့်ကိုပိုမိုနားလည်ရန်ကူညီနိုင်သည်ဟုမျှော်လင့်ပါ။