最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP+MYSQL實(shí)現(xiàn)讀寫(xiě)分離簡(jiǎn)單實(shí)戰(zhàn)

 更新時(shí)間:2017年03月13日 15:29:48   作者:zilu  
本篇文章主要介紹了PHP+MYSQL實(shí)現(xiàn)讀寫(xiě)分離,實(shí)例分析了讀寫(xiě)分離的技巧,從而提高數(shù)據(jù)庫(kù)的負(fù)載能力,具有一定的參考價(jià)值,有興趣的可以了解一下。

1、Introduction

之前寫(xiě)過(guò)2篇文章,分別是:

Mysql主從同步的原理 

Myql主從同步實(shí)戰(zhàn) 

基于此,我們?cè)賹?shí)現(xiàn)簡(jiǎn)單的PHP+Mysql讀寫(xiě)分離,從而提高數(shù)據(jù)庫(kù)的負(fù)載能力。

2、代碼實(shí)戰(zhàn)

<?php
class Db
{
  private $res;
  function __construct($sql)
  {
    $querystr = strtolower(trim(substr($sql,0,6)));
    //如果是select,就連接slave服務(wù)器
    if($querystr == 'select')
    {
      $res=$this->slave_select($sql);
      $this->res=$res;
    }
    //如果不是select,就連接master服務(wù)器
    else
    {
      $res=$this->master_change($sql);
      $this->res=$res;
    }
  }

  /**
   * slave從庫(kù)返回sql查詢結(jié)果
   * @param $sql
   * @return array
   */
  private function slave_select($sql){
    //該處只是隨機(jī)獲取slave節(jié)點(diǎn)的ip,當(dāng)然,還可以采用其他算法獲取slave_ip
    $slave_server=$this->get_slave_ip();
    $dsn="mysql:host=$slave_server;dbname=test";
    $user='root';
    $pass='123456';
    $dbh=new PDO($dsn, $user, $pass);
    return $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);
  }

  /**master主庫(kù)返回sql執(zhí)行結(jié)果
   * @param $sql
   * @return int
   */
  private function master_change($sql){
    $master_server='192.168.33.22';
    $dsn="mysql:host=$master_server;dbname=test";
    $user='root';
    $pass='123456';
    $dbh=new PDO($dsn, $user, $pass);
    return $dbh->exec($sql);
  }

  /**
   * 隨機(jī)獲取slave-ip
   * @return mixed
   */
  private function get_slave_ip(){
    $slave_ips=['192.168.33.33','192.168.33.44'];
    $count=count($slave_ips)-1;
    $random_key=mt_rand(0,$count);
    return $slave_ips[$random_key];
  }

  /**       
   * 獲取結(jié)果
   * @return int
   */
  public function get_res(){
    return $this->res;
  }
}

$sql1 = "select * from t1";
$sql2 = "insert into t1 (name) values ('haha')";
$sql3 = "delete from t1 where id=1";
$sql4 = "update t1 set name='Jerry' where id=2";

$db = new Db($sql1);
//$db = new Db($sql2);
//$db = new Db($sql3);
//$db = new Db($sql4);

var_dump($db->get_res());

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • ThinkPHP5對(duì)接IOS蘋(píng)果支付代碼

    ThinkPHP5對(duì)接IOS蘋(píng)果支付代碼

    前端在調(diào)起蘋(píng)果支付前,先請(qǐng)求到服務(wù)端,服務(wù)端先生成一條充值記錄,但是狀態(tài)為:未支付;然后把這個(gè)訂單id發(fā)給前端,前端在支付完成的時(shí)候,會(huì)收到蘋(píng)果的支付憑證,將此憑證和訂單id回傳給服務(wù)端,訂單id的作用是用來(lái)確定是哪一筆,支付憑證是拿來(lái)校驗(yàn)是否支付成功
    2023-08-08
  • php獲取數(shù)組長(zhǎng)度的方法(有實(shí)例)

    php獲取數(shù)組長(zhǎng)度的方法(有實(shí)例)

    php獲取數(shù)組長(zhǎng)度的方法,php為我們提供了兩個(gè)函數(shù)可以計(jì)算一維數(shù)組長(zhǎng)度,如count,sizeof都可以直接統(tǒng)計(jì)數(shù)組長(zhǎng)度,還有獲取二維數(shù)組的方法。
    2013-10-10
  • 基于Laravel實(shí)現(xiàn)的用戶動(dòng)態(tài)模塊開(kāi)發(fā)

    基于Laravel實(shí)現(xiàn)的用戶動(dòng)態(tài)模塊開(kāi)發(fā)

    這篇文章主要給大家介紹了關(guān)于基于Laravel實(shí)現(xiàn)的用戶動(dòng)態(tài)模塊開(kāi)發(fā)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • 使用PHPCMS搭建wap手機(jī)網(wǎng)站

    使用PHPCMS搭建wap手機(jī)網(wǎng)站

    PHPCMS搭建PC端網(wǎng)站比較方便,但是在wap手機(jī)端方面卻不怎么實(shí)用,而且自帶的手機(jī)建站感覺(jué)不是很好,而且模版不好控制,現(xiàn)在對(duì)其進(jìn)行修改,手機(jī)建站個(gè)人感覺(jué)比較方便。本文給大家介紹使用PHPCMS搭建wap手機(jī)網(wǎng)站,需要的朋友可以參考下
    2015-09-09
  • phpMyAdmin自動(dòng)登錄和取消自動(dòng)登錄的配置方法

    phpMyAdmin自動(dòng)登錄和取消自動(dòng)登錄的配置方法

    這篇文章主要介紹了phpMyAdmin自動(dòng)登錄和取消自動(dòng)登錄的配置方法,需要的朋友可以參考下
    2014-05-05
  • laravel5.1框架基礎(chǔ)之Blade模板繼承簡(jiǎn)單使用方法分析

    laravel5.1框架基礎(chǔ)之Blade模板繼承簡(jiǎn)單使用方法分析

    這篇文章主要介紹了laravel5.1框架基礎(chǔ)之Blade模板繼承簡(jiǎn)單使用方法,結(jié)合實(shí)例形式分析了laravel5.1框架模板繼承原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • php調(diào)用dll的實(shí)例操作動(dòng)畫(huà)與代碼分享

    php調(diào)用dll的實(shí)例操作動(dòng)畫(huà)與代碼分享

    這是我錄制的一個(gè)gif操作動(dòng)畫(huà),圖片比較大,如果大家在線看圖感覺(jué)不流暢的話可以把圖片保存到本機(jī)再看
    2012-08-08
  • php在線代理轉(zhuǎn)向代碼

    php在線代理轉(zhuǎn)向代碼

    這個(gè)代碼不是自己實(shí)現(xiàn)代理的功能 只是將輸入的Url進(jìn)行簡(jiǎn)單的處理之后轉(zhuǎn)向一個(gè)代理網(wǎng)站,速度不錯(cuò)
    2012-05-05
  • PHP按行讀取文件時(shí)刪除換行符的3種方法

    PHP按行讀取文件時(shí)刪除換行符的3種方法

    這篇文章主要介紹了PHP按行讀取文件時(shí)刪除換行符的3種方法,需要的朋友可以參考下
    2014-05-05
  • Thinkphp5+PHPExcel實(shí)現(xiàn)批量上傳表格數(shù)據(jù)功能

    Thinkphp5+PHPExcel實(shí)現(xiàn)批量上傳表格數(shù)據(jù)功能

    這篇文章主要介紹了Thinkphp5+PHPExcel實(shí)現(xiàn)批量上傳表格數(shù)據(jù)功能,需要的朋友可以參考下
    2017-11-11

最新評(píng)論

天门市| 黔南| 马边| 阜新| 姜堰市| 牡丹江市| 江川县| 成武县| 绥江县| 都兰县| 紫云| 孟连| 厦门市| 莱西市| 营山县| 盈江县| 永昌县| 黄骅市| 原平市| 泰州市| 双辽市| 阳城县| 威宁| 曲麻莱县| 罗江县| 临清市| 绥中县| 报价| 和田市| 波密县| 临桂县| 淮北市| 朝阳区| 施甸县| 鲁山县| 长春市| 东乡族自治县| 会同县| 沈阳市| 夹江县| 敦化市|