PHP ကို သုံး. ဒေတာဘေ့စ်တစ်ခုကိုချိတ်ဆက်သောအခါသင်သည် "connection များ" အမှားများကိုမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဒေတာဘေ့စ်ဆာဗာမှခွင့်ပြုထားသောဆက်သွယ်မှုအများဆုံးအရေအတွက်ထက်ကျော်လွန်သောဆက်သွယ်မှုအရေအတွက်ထက်ကျော်လွန်သောပွင့်လင်းသောဆက်သွယ်မှုအရေအတွက်ကိုမှန်ကန်စွာစီမံခြင်းမဟုတ်ပါ။ ဤဆောင်းပါးသည်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်တာဝန်ရှိသည့် PHP ရှိ Connect function ကိုပိုမိုကောင်းမွန်စေရန်ဤအမှားများကိုမည်သို့ရှောင်ရှားရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
ဒေတာဘေ့စ၏ဆာဗာများသည်များသောအားဖြင့်အရင်းအမြစ်များကိုမောခြင်းမှကာကွယ်ရန်အမြင့်ဆုံးဆက်သွယ်မှုအရေအတွက်ကိုကန့်သတ်ထားသည်။ တောင်းဆိုမှုတစ်ခုစီအတွက်ဒေတာဘေ့စ်ဆက်သွယ်မှုအသစ်တစ်ခုကိုဖန်တီးပါက,
ဆက်သွယ်မှုခွေပိုးမွှားများ - Singleton Mode သို့မဟုတ် Persistent Connections ကို အသုံးပြု. ထပ်ခါတလဲလဲဆက်သွယ်မှုများကိုထပ်ခါတလဲလဲဖန်တီးမှုကိုရှောင်ပါ။
ဆက်သွယ်မှုကိုအချိန်မီပိတ်ပါ ။ စစ်ဆင်ရေးပြီးဆုံးပြီးနောက်အရင်းအမြစ်များကိုအချိန်မီဖြန့်ချိပါ။
connection pooling : concernence particencencencency အခြေအနေများတွင် connection pooling နည်းပညာကိုသုံးပါ (PHP သည်ပုံမှန်အားဖြင့်သာမန်အားဖြင့်အများအားဖြင့်အကောင်အထည်ဖော်ရန်ခက်ခဲသည်။
အောက်ပါတို့သည်ကောင်းမွန်သော ဆက်သွယ်မှု function ကိုပြသသည်။
<?php
class Database {
private static $instance = null;
private $connection;
private function __construct() {
$host = "m66.net";
$user = "username";
$password = "password";
$dbname = "database";
$this->connection = new mysqli($host, $user, $password, $dbname);
if ($this->connection->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $this->connection->connect_error);
}
}
// ဒေတာဘေ့စ် connection implance ရရန် Singleton Mode
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new Database();
}
return self::$instance;
}
// ရယူmysqliအရာဝတ်ထုများကိုချိတ်ဆက်ပါ
public function getConnection() {
return $this->connection;
}
// ဆက်သွယ်မှုကိုပိတ်ပါ
public function closeConnection() {
if ($this->connection) {
$this->connection->close();
self::$instance = null;
}
}
}
// အသုံးပြုမှုဥပမာ
$db = Database::getInstance();
$conn = $db->getConnection();
// တစ် ဦး စုံစမ်းမှု execute
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result) {
while ($row = $result->fetch_assoc()) {
echo "အသုံးပြုသူ: " . $row['username'] . "<br>";
}
} else {
echo "အမှားအမှား: " . $conn->error;
}
// ဆက်သွယ်မှုကိုပိတ်ပါ
$db->closeConnection();
?>
Singleton Mode မှတဆင့်, တောင်းဆိုမှုတစ်လျှောက်လုံးဒေတာဘေ့စ် connection တစ်ခုသာဖန်တီးသည်။
ဆက်သွယ်ရေးဆိုင်ရာအချက်များရှိဒိုမိန်းအမည်ကို M66.net သို့ပြောင်းသည်။ ၎င်းသည်လိုအပ်ချက်များနှင့်ကိုက်ညီသော M66.NET သို့ပြောင်းလဲသွားသည်။
query ပြီးနောက်အရင်းအမြစ်များကိုဖြန့ ် ချိရန်အချိန်အတွက်ဆက်သွယ်မှုကိုပိတ်ရန်နှင့်ပြီးစီးခဲ့သည်။
မြဲ connection - ဒေတာဘေ့စ်ကိုထောက်ခံပါက MySQLI_PConnect ကို သင်စဉ်းစားနိုင်သည်။ (မြဲမြဲဆက်သွယ်မှု၏ဝိသေသလက္ခဏာများနှင့်အန္တရာယ်များကိုသတိပြုပါ) ။
ဒေတာဘေ့စ်သို့အများဆုံးဆက်သွယ်မှုအရေအတွက်ကိုပြင်ဆင်ပါ ။ လျှောက်လွှာတင်ခြင်းကိုပေါင်းစပ်ပြီး MySQL ၏ Max_Connections ကို ကျိုးကြောင်းဆီလျော်စွာပြင်ဆင်ပါ။
Connection Pools ကိုသုံးပါ ။ ကြီးမားသောစီမံကိန်းများအတွက်ကြီးမားသောစီမံကိန်းများအတွက် SWOOLE, PDO ဆက်သွယ်မှုရေကန်များစသည့်နည်းလမ်းများဖြင့်ဆက်သွယ်မှုစီမံခန့်ခွဲမှုရရှိနိုင်သည်။