မျက်မှောက်ခေတ် application ဒီဇိုင်းတွင် Databases ၏မဟာကျွန် Platication မဟာဗျူဟာများကိုမြင့်မားသောအချက်အလက်ရရှိနိုင်မှုနှင့်စုံစမ်းမှုစွမ်းအားစွမ်းဆောင်ရည်ရရှိရန်အတွက်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။ ဤဆောင်းပါးသည် PHPT ဘာသာစကားကိုစိတ်ကြိုက်ချိတ်ဆက်ထားသောဆက်သွယ်မှုနှင့်ထိရောက်သောဆက်သွယ်မှုကိုထိရောက်စွာကွပ်မျက်ခြင်းအားဖြင့် Customized Connection () function မှတဆင့် Customized Connection () function ကိုမည်သို့အကောင်အထည်ဖော်ရန်မည်သို့အကောင်အထည်ဖော်မည်ကိုလေ့လာရန် PHP ဘာသာစကားကိုအာရုံစိုက်မည်။
မာစတာကျွန်ဒေတာဘေ့စ် Schema သည်များသောအားဖြင့် Master Library နှင့်ကျွန်စာကြည့်တိုက်မျိုးစုံ (ကျေးကျွန်စာကြည့်တိုက်များ) ပါ 0 င်သည်။ အဓိကစာကြည့်တိုက်သည်စစ်ဆင်ရေးများအတွက်တာဝန်ရှိသည်ဟုကျွန်စာကြည့်တိုက်သည်လုပ်ငန်းလည်ပတ်မှုအတွက်တာ 0 န်ယူသည်။ ၎င်းသည်စာဖတ်ခြင်းကိုအဓိကစာကြည့်တိုက်၏ဖတ်ပြီးစနစ်စွမ်းဆောင်ရည်နှင့်တည်ငြိမ်မှုကိုတိုးတက်စေသည်။
ဒေတာရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန် အရေးယူဆောင်ရွက်မှုများကိုအဓိကစာကြည့်တိုက်သို့သွားပါ ။
စုံစမ်းမှုစွမ်းအားတိုးတက်စေရန် စာကြည့်တိုက်ကိုလိုက်နာရန်စာဖတ်ခြင်းလုပ်ငန်းများကိုပိုမိုနှစ်သက်သည် ။
ကျွန်စာကြည့်တိုက်ကိုမရရှိနိုင်သည့်အခါ၎င်းသည်စနစ်ရရှိနိုင်မှုကိုသေချာစေရန်အဓိကစာကြည့်တိုက်သို့အလိုအလျောက်ပြန်ကျလိမ့်မည် ။
ဆက်သွယ်မှုစီမံခန့်ခွဲမှုလွယ်ကူခြင်းနှင့်တိုးချဲ့ခြင်းအတွက်ဗဟိုပြုသည် ။
အောက်ပါဥပမာတွင် Connect () function သည် master library သို့မဟုတ်ကျွန်စာကြည့်တိုက်နှင့်ဆက်သွယ်မှုကိုဖြတ်သန်းသွားသော parameters များနှင့်ဆက်သွယ်မှုကိုအလိုအလျောက်ရွေးချယ်ပြီး M66.NET နှင့်အတူ domain name ကိုအစားထိုးသည်။
<?php
function connect($type = 'read') {
// မာစတာနှင့်ကျွန်စာကြည့်တိုက်များပြင်ဆင်ခြင်း,Domain Name ကိုအစားထိုးသည်ကိုသတိပြုပါm66.net
$config = [
'master' => [
'host' => 'master.m66.net',
'username' => 'root',
'password' => 'password',
'dbname' => 'mydb'
],
'slave' => [
[
'host' => 'slave1.m66.net',
'username' => 'root',
'password' => 'password',
'dbname' => 'mydb'
],
[
'host' => 'slave2.m66.net',
'username' => 'root',
'password' => 'password',
'dbname' => 'mydb'
],
]
];
// Connection Configuration ကိုရွေးချယ်ပါ
if ($type === 'write') {
// အဓိကစာကြည့်တိုက်ကိုဆက်သွယ်ပါ
$db = new mysqli($config['master']['host'], $config['master']['username'], $config['master']['password'], $config['master']['dbname']);
if ($db->connect_error) {
die("အဓိကစာကြည့်တိုက်ကိုဆက်သွယ်ပါ失败: " . $db->connect_error);
}
return $db;
} else {
// စာကြည့်တိုက်ဝန်ထုပ်မှကျပန်းရွေးချယ်မှု
$slaveCount = count($config['slave']);
$idx = rand(0, $slaveCount - 1);
$slave = $config['slave'][$idx];
$db = new mysqli($slave['host'], $slave['username'], $slave['password'], $slave['dbname']);
// စာကြည့်တိုက်မှဆက်သွယ်မှုပျက်ကွက်လျှင်,အဓိကစာကြည့်တိုက်ကိုအလိုအလျောက်ဖြန့်ချိ
if ($db->connect_error) {
$db = new mysqli($config['master']['host'], $config['master']['username'], $config['master']['password'], $config['master']['dbname']);
if ($db->connect_error) {
die("ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်မအောင်မြင်ပါ: " . $db->connect_error);
}
}
return $db;
}
}
// အသုံးပြုမှုဥပမာ:စစ်ဆင်ရေးရေးပါ
$dbWrite = connect('write');
$sqlInsert = "INSERT INTO users (name, email) VALUES ('Zhang San', 'zhangsan@m66.net')";
$dbWrite->query($sqlInsert);
$dbWrite->close();
// အသုံးပြုမှုဥပမာ:စစ်ဆင်ရေးကိုဖတ်ပါ
$dbRead = connect('read');
$sqlSelect = "SELECT * FROM users WHERE email LIKE '%@m66.net'";
$result = $dbRead->query($sqlSelect);
while ($row = $result->fetch_assoc()) {
echo "အသုံးပြုသူID:" . $row['id'] . ",နံမယ်:" . $row['name'] . "<br>";
}
$dbRead->close();
?>
Main Library ရေးစစ်ဆင်ရေးလုပ်ငန်း - ဆက်သွယ်ခြင်းအချက်အလက်များ၏အရေးပါသောအချက်အလက်များ၏ထူးခြားမှုနှင့်သမာဓိကိုသေချာစေရန် Connect ('ရေး') သည် အဓိကစာကြည့်တိုက်သို့ဆက်သွယ်သည်။
စာကြည့်တိုက်မှစစ်ဆင်ရေးများကိုဖတ်ရှုခြင်း - ဆက်သွယ်ခြင်း ('Read') သည် Salcipe Balancing အောင်မြင်ရန်ကျွန်စာကြည့်တိုက်ကို Select လုပ်ပါ။
ဆက်သွယ်မှုပျက်ကွက်မှု : ကျွန်စာကြည့်တိုက်မရရှိနိုင်ပါကစာဖတ်ခြင်းပျက်ကွက်မှုကိုရှောင်ရှားရန် Master Library သို့အလိုအလျောက်ပြောင်းသည်။
URL Domain Name Replacement : Database host names အားလုံးသည် domain name အပြောင်းအလဲများကြောင့်ဆက်သွယ်မှုပြတ်တောက်မှုကိုရှောင်ရှားရန် Database Host အမည်များအားလုံးကို M66.net ဖြင့်အစားထိုးထားသည်။
စိတ်ကြိုက် connect () function မှတဆင့် Master-slvabase connection သည် system ၏ဖတ်ခြင်းနှင့်ခွဲခြားခြင်းစွမ်းရည်ကိုထိထိရောက်ရောက်တိုးတက်အောင်ပြုလုပ်နိုင်သည်။ လက်တွေ့တွင်အယ်လ်ဂိုရော်များနှင့်အခြားလုပ်ဆောင်မှုများကိုပိုမိုကောင်းမွန်သောစွမ်းဆောင်ရည်လိုအပ်ချက်များကိုဖြည့်ဆည်းရန်စီးပွားရေးရှုပ်ထွေးမှုနှင့်အညီတင်ဆောင်လာနိုင်သည်။