အင်တာနက်နှင့်ကြီးမားသောအချက်အလက်များလျင်မြန်စွာဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူဒေတာဘေ့စ်များ၏စုံစမ်းမှုစွမ်းဆောင်ရည်သည်ပိုမိုအရေးကြီးလာသည်။ မကြာခဏဝင်ပေါက်အချက်အလက်များအတွက် cache နည်းပညာကိုအသုံးပြုခြင်းသည်စုံစမ်းမှုမြန်နှုန်းကိုထိရောက်စွာတိုးတက်စေနိုင်သည်။ ဤဆောင်းပါးသည် PHP ရှိ PHP ရှိ PHP ရှိ Oracle Database ၏ Oracle Database ၏ optimization နည်းလမ်းများကိုမည်သို့အသုံးချရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
Oracle Database ကိုယ်တိုင်သည် Oracle Xe (Exacpt Edition 12C နှင့် Oracle Database 12C နှင့်အထက်တွင်အကောင်အထည်ဖော်မှုကိုအထောက်အကူပြုသော built-in cacheg function ကိုပေးသည်။ စစ်ဆင်ရေးအဆင့်များသည်အောက်ပါအတိုင်းဖြစ်သည် -
CREATE TABLE cache_table (
key VARCHAR2(100) PRIMARY KEY,
value VARCHAR2(1000),
expire_time DATE
);
ထို့နောက် PHP Code တွင် OCI (Oracle Call Interface) မှတစ်ဆင့် ORAXacle Database သို့ Oracle Database သို့ဆက်သွယ်သည်။ ဒေတာများကိုမေးမြန်းခြင်းမပြုမီ, cache table ထဲမှာဒေတာကိုစစ်ဆေးပါ။ အကယ်. အချက်အလက်များတည်ရှိပြီးသက်တမ်းကုန်ဆုံးပါက cache ကိုတိုက်ရိုက်သုံးပါ။ ဒီလိုမှမဟုတ်ရင်မေးခွန်းကို cache table ထဲမှာသိမ်းထားပါ။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
$db_connection = oci_connect('username', 'password', 'localhost/XE');
// cache ကိုစားပွဲပေါ်မှာ query query query cache ကို
$cache_sql = "SELECT value FROM cache_table WHERE key = :key AND expire_time > SYSDATE";
$cache_statement = oci_parse($db_connection, $cache_sql);
oci_bind_by_name($cache_statement, ':key', $key);
oci_execute($cache_statement);
အကယ်. ဒေတာများကို cache table တွင်တည်ရှိပါကအချက်အလက်များကိုတိုက်ရိုက်ပြန်ပို့လိမ့်မည်။ ဒီလိုမှမဟုတ်ရင်ဒေတာစုံစမ်းမှုတစ်ခုဖြစ်ပြီးရလဒ်ကို cache table ထဲမှာသိမ်းထားတယ်။
if ($cache_row = oci_fetch_array($cache_statement)) {
$value = $cache_row['VALUE'];
} else {
$data_sql = "SELECT * FROM data_table WHERE key = :key";
$data_statement = oci_parse($db_connection, $data_sql);
oci_bind_by_name($data_statement, ':key', $key);
oci_execute($data_statement);
$data_row = oci_fetch_array($data_statement);
$value = $data_row['VALUE'];
// Query ကိုသိမ်းဆည်းရန် Cache Table သို့သိမ်းဆည်းပါ
$insert_sql = "INSERT INTO cache_table (key, value, expire_time) VALUES (:key, :value, SYSDATE + 3600)";
$insert_statement = oci_parse($db_connection, $insert_sql);
oci_bind_by_name($insert_statement, ':key', $key);
oci_bind_by_name($insert_statement, ':value', $value);
oci_execute($insert_statement);
}
oci_close($db_connection);
echo $value;
Oracle ၏ built-in cacheability ကို အသုံးပြု. PHP ၏ cache အစိတ်အပိုင်းများကို Memcached သို့မဟုတ် Redis ကဲ့သို့သော PHP ၏ cache အစိတ်အပိုင်းများကိုသုံးနိုင်သည်။ သတ်သတ်မှတ်မှတ်စစ်ဆင်ရေးခြေလှမ်းများအောက်ပါအတိုင်းဖြစ်သည် -
// ချိတ်ဆက်ပါMemcachedဆာဆာ
$memcached = new Memcached();
$memcached->addServer('localhost', 11211);
// query cache ကိုဒေတာ
$value = $memcached->get($key);
သိုလှောင်ထားသည့်ဒေတာမရှိပါကဒေတာများကိုဒေတာဘေ့စ်မှရှာဖွေပြီး cache ထဲတွင်သိမ်းဆည်းထားပါ။
if
echo $value;
အထက်ပါနည်းလမ်းနှစ်ခုမှတဆင့် Oracle ဒေတာဘေ့စ်ဒေတာဒေတာသိုလှောင်မှုဆိုင်ရာအချက်အလက်များသိုလှောင်ခြင်းနှင့် Query Optimization နည်းပညာကို အသုံးပြု. စနစ်စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေရန်နှင့်ဒေတာဘေ့စ်ဝန်ကိုလျှော့ချနိုင်သည်။ Cache သည်တုန့်ပြန်ရသောအချက်အလက်များ၏တုန့်ပြန်မှုမြန်နှုန်းကိုတိုးတက်စေပြီးအချက်အလက်ရှေ့နောက်မညီမှုနှင့်သက်တမ်းကုန်ဆုံးရန် cache ၏တရားဝင်မှုကာလနှင့် Refreshing ၏ယန္တရားကိုဂရုပြုနိုင်သည်။