freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

讀寫分離的三種方法-在線瀏覽

2025-01-05 21:39本頁面
  

【正文】 讀寫分離的三種方法 1. PHP 代碼法 ,mysql master(write)salver(read)。 2. MySQL Proxy+LUA 腳本法 。 PHP 實現(xiàn)的 Mysql 讀寫分離 本代碼是從 uchome 的代碼修改的,是因為要解決 uchome 的效率而處理的。 封裝的方式比較簡單,增加了只讀數(shù)據(jù)庫連接的接口擴展,不使用只讀數(shù)據(jù)庫也不影響原代碼使用。 為了方便,試試建立了 google 的一個項目: 希望給有需要的朋友帶來幫助。 //當(dāng)前操作的數(shù)據(jù)庫連接 var $link = null。 //當(dāng)前數(shù)據(jù)庫 var $cur_db = 39。 //是否存在有效的只讀數(shù)據(jù)庫連接 var $ro_exist = false。 //讀寫數(shù)據(jù)庫連接 var $link_rw = null。39。amp。Can not connect to MySQL server39。 } } else { if(!$thislink = mysql_connect($dbhost, $dbuser, $dbpw)) { $halt amp。 $thishalt(39。)。amp。 //未初始化 rw 時,第一個連接作為 rw if($thislink_rw == null) $thislink_rw = $thislink。39。 } if($thisversion() 39。) { mysql_query(SET sql_mode=39。, $thislink)。 } } //連接一個只讀的 mysql 數(shù)據(jù)庫 function connect_ro($dbhost, $dbuser, $dbpw, $dbname = 39。, $pconnect = 0){ if($thislink_rw == null) $thislink_rw = $thislink。 //不產(chǎn)生 halt 錯誤 $this connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, false)。 $thisro_exist = true。 if($thiscur_db){ //如果已經(jīng)選擇過數(shù)據(jù)庫則需要操作一次 mysql_select_db($thiscur_db, $thislink_ro)。 $thislink = amp。 } } //設(shè)置一系列只讀數(shù)據(jù)庫 并且連接其中一個 function set_ro_list($ro_list){ if(is_array($ro_list)){ //隨機選擇其中一個 $link_ro = $ro_list[array_rand($ro_list)]。dbhost39。dbuser39。dbpw39。 } } function select_db($dbname) { //同時操作兩個數(shù)據(jù)庫連接 $this cur_db = $dbname。 } return mysql_select_db($dbname, $thislink_rw)。 } function fetch_one_array($sql, $type = 39。) { $qr = $this query($sql, $type)。 } function query($sql, $type = 39。) { $this link = amp。 //判斷是否 select 語句 if($thisro_exist amp。 preg_match (/^(\s*)select/i, $sql)){ $thislink = amp。 } $func = $type == 39。 amp。 function_exists(39。) ? 39。 : 39。 if(!($query = $func($sql, $thislink)) amp。 $type != 39。) { $thishalt(39。, $sql)。 return $query。 } function error() { return (($thislink) ? mysql_error($thislink) : mysql_error())。 } function result($query, $row) { $query = mysql_result($query, $row)。 } function num_rows($query) { $query = mysql_num_rows($query)。 } function num_fields($query) { return mysql_num_fields($query)。 } function insert_id() { return ($id = mysql_insert_id($thislink)) = 0 ? $id : $thisresult($thisquery(SELECT last_insert_id()), 0)。 return $query。 } function version() { return mysql_get_server_info($thislink)。 } function halt($message = 39。, $sql = 39。) { $dberror = $thiserror()。 echo div style=\position:absolute。fontfamily:verdana,arial。padding:。 exit()。39。 //rw info $db_rw = array( 39。=39。, 39。=39。, 39。=39。, 39。=39。 )。dbhost39。:430639。dbuser39。aslibra39。dbpw39。39。 $DB = new mysql_rw_php。 //Method 1: connect one server $DBconnect_ro($db_ro[0][dbhost], $db_ro[0][dbuser], $db_ro[0][dbpw])。 //send to rw $sql = insert into a set a=39。 $DBquery($sql)。 $qr = $DBquery($sql)。 } ? MySQL Proxy 安裝與讀寫分離體驗 一直想等到 BETA 版出來再試驗的,可還是經(jīng)不住誘惑阿 ,下午終于有時間測試一下了。 或者去 MYSQL 官方下載源代碼。這樣 SQL 語句一下子就看出來從哪里來的。 LUA 的安裝 [rootlocalhost ~]tar zxvf C /usr/local [rootlocalhost ~] cd /usr/local/ [rootlocalhost local] mv lua [rootlocalhost lua] cd lua [rootlocalhost lua]make local。 導(dǎo)出環(huán)境變量: [rootlocalhost lua]export LUA_CFLAGS=I/usr/local/include LUA_LIBS=L/usr/local/lib llua ldl LDFLAGS=lm MySQL Proxy 安裝 [rootlocalhost ~]tar zxvf C /usr/local/mysql/ [rootlocalhost ~]cd /usr/local/mysql [rootlocalhost mysql]mv mysqlproxy [rootlocalhost sbin] export PATH=$PATH:/usr/local/mysql/mysqlproxy/sbin/ 四、使用 MySQL Proxy 查看幫助選項 [rootlocalhost ~] mysqlproxy helpall 對 MySQL 操作 MySQL 服務(wù)器假設(shè)已經(jīng)安裝。 mysql desc t。B39。 Query OK, 1 row affected ( sec) 在 C 上同樣插入一條記錄 mysql insert into t(c_str) value(39。)。 [1] 32554 讓 MYSQL PROXY 自動啟動的簡單腳本 !/bin/sh export PATH=$PATH:/usr/local/mysqlproxy cd /usr/local/mysqlproxy ./mysqlproxy proxyreadonlybackendaddresses=:3306 proxybackendaddresses=:3306 proxyluascript= /tmp/log ~ 這個例子中限制 為只讀 , 為可寫。 我們用幾臺客戶端開啟 4個連接。 寫數(shù)據(jù)。wangwang39。 Query OK, 1 row affected ( sec) mysql show processlist。 +++ | id | c_str | +++ | 1 | B | | 2 | wangwang | +++ 2 rows in set ( sec) 再增加一個客戶端連接。 +++++++++ | Id | User | Host | db | Command | Time | State | Info | +++++++++ | 2 | system user | | NULL | Connect | 1842 | Has read all relay log。 mysql select * from t。 再插入一條記錄 mysql insert into t(c_str) values (39。)。 +++ | id | c_str | +++ | 1 | C | +++ 1 row in set ( sec) C 上的數(shù)據(jù)沒有變。 現(xiàn)在跑到 B 上看看。 +++++++++ | Id | User | Host | db | Command | Time | State | Info | +++++++++ | 2 | system us
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1