亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

php多數(shù)據(jù)庫支持的應用程序設計第1/2頁

 更新時間:2008年08月12日 12:26:47   作者:  
以前做PHP應用,多數(shù)是單數(shù)據(jù)庫數(shù)據(jù)查詢和更新,頂多也是主從數(shù)據(jù)庫的支持,實現(xiàn)起來相對簡單。主從數(shù)據(jù)庫的問題在于,當會話存儲在數(shù)據(jù)庫的時候,同步將可能出現(xiàn)問題,也就是說有可能出現(xiàn)會話的中斷。
所以我想在主從數(shù)據(jù)庫設計上,應該將所有會話相關表進行特殊對待。即:所有的會話數(shù)據(jù)表都可以更新和查詢,當一個用戶訪問站點的時候,即將此用戶綁定到指定數(shù)據(jù)庫,所有會話訪問和查詢操作都對此數(shù)據(jù)庫進行。會話表不做同步,其他非會話類更新也從主數(shù)據(jù)庫更新。這樣做其實也逃脫不了會話更新時候的數(shù)據(jù)庫切換,所以如果不想麻煩,還是將會話存放在文本中進行的好。
  分數(shù)據(jù)庫設計,將可能從壓力性能上會提升幾個檔次,當然單次執(zhí)行效率不會比單數(shù)據(jù)庫來的高的,畢竟存在著數(shù)據(jù)庫切換的效率問題。分庫以及主從數(shù)據(jù)庫搭配是可以比較好改善數(shù)據(jù)庫并發(fā)瓶頸的方案。原則:大數(shù)據(jù)量,分庫;大訪問量,主從。很多時候,都是這兩者并行(本文不討論cache)。
  我想,如果要實現(xiàn)分庫以及主從關系,那么數(shù)據(jù)庫服務器數(shù)量將是非??捎^,在應用程序中隨時切換到某一臺服務器,將是非常頭痛的問題,配置更換,變量名稱,是不是會有一大堆呢?如何尋找更好的解決方案將是本文談論的話題。
  首先是分庫使得數(shù)據(jù)庫頗多的問題。什么情況下分庫?或許有些人還搞不明白為什么要分庫,我就簡要說一下自己的經(jīng)驗猜測。比如一個博客程序,一般設計是將日志存放在一張日志表中。假設是一個多用戶博客,那么將會關聯(lián)一個uid,如果數(shù)據(jù)量不大,這樣設計是沒有問題的,但是當日志量巨大,一天有幾十萬條日志記錄錄入的時候,而且訪問量也比較可觀的時候,我想不可能每個用戶來訪問日志列表,都去從這包含幾千萬條日志記錄的數(shù)據(jù)表中去找那么幾條,效率可見一斑。這個時候就該考慮到分庫的問題。如何分?有一個很簡單的分表方法,即,根據(jù)uid段,將日志記錄在各個數(shù)據(jù)庫中,當然,這個分布還是需要根據(jù)以往統(tǒng)計結(jié)果做出調(diào)整的,因為用戶日志分布肯定不是均勻的。設置好uid段,然后根據(jù)uid索引到指定數(shù)據(jù)庫配置,創(chuàng)建一個數(shù)據(jù)庫對象即可。配置信息可能如下:
復制代碼 代碼如下:

$configs['db_info']['blog'][0] = array(
    'db_host' => '192.168.0.1',
    'db_name' => 'blog',
    'db_user' => 'root',
    'db_pass' => '',
);
$configs['db_info']['blog'][1] = array(
    'db_host' => '192.168.0.2',
    'db_name' => 'blog',
    'db_user' => 'root',
    'db_pass' => '',
);
$configs['db_info']['blog'][2] = array(
    'db_host' => '192.168.0.2',
    'db_name' => 'blog',
    'db_user' => 'root',
    'db_pass' => '',
);
//...還有很多

  至于選擇哪一臺服務器,只需要根據(jù)uid做一個簡單的匹配就可以了。
  再談到的就是主從數(shù)據(jù)庫了。什么情況下使用主從數(shù)據(jù)庫?比如某個名人博客,訪問量相當?shù)拇?,已?jīng)沒有辦法把他的數(shù)據(jù)再進行拆分了,這個時候就得考慮主從數(shù)據(jù)庫服務器了,使用多臺數(shù)據(jù)庫來分流。這樣要適用主從和分庫,可能上面配置信息得稍微改動一下。
復制代碼 代碼如下:

$configs['db_info']['blog'][0]['master'] = array(
    'db_host' => '192.168.0.1',
    'db_name' => 'blog',
    'db_user' => 'root',
    'db_pass' => '',
);
$configs['db_info']['blog'][0]['slave'][0] = array(
    'db_host' => '192.168.0.2',
    'db_name' => 'blog',
    'db_user' => 'root',
    'db_pass' => '',
);
$configs['db_info']['blog'][0]['slave'][1] = array(
    'db_host' => '192.168.0.3',
    'db_name' => 'blog',
    'db_user' => 'root',
    'db_pass' => '',
);
$configs['db_info']['blog'][1]['master'] = array(
    'db_host' => '192.168.0.4',
    'db_name' => 'blog',
    'db_user' => 'root',
    'db_pass' => '',
);
$configs['db_info']['blog'][1]['slave'][0] = array(
    'db_host' => '192.168.0.5',
    'db_name' => 'blog',
    'db_user' => 'root',
    'db_pass' => '',
);
$configs['db_info']['blog'][1]['slave'][1] = array(
    'db_host' => '192.168.0.6',
    'db_name' => 'blog',
    'db_user' => 'root',
    'db_pass' => '',
);
$configs['db_info']['session'][0]['master'] = array(
    'db_host' => '192.168.0.7',
    'db_name' => 'session',
    'db_user' => 'root',
    'db_pass' => '',
);
$configs['db_info']['session'][1]['master'] = array(
    'db_host' => '192.168.0.8',
    'db_name' => 'session',
    'db_user' => 'root',
    'db_pass' => '',
);

  寫到這里,我想都應該知道如何分表和分配你的數(shù)據(jù)庫了吧,接下去我就來說一下如何輕松的讀取這樣的配置信息,如何將這些配置融入你的數(shù)據(jù)庫驅(qū)動中。

相關文章

  • php之curl設置超時實例

    php之curl設置超時實例

    這篇文章主要介紹了php中curl設置超時的方法,實例講述了curl中各種超時設置的方法,非常具有實用價值,需要的朋友可以參考下
    2014-11-11
  • 談談PHP的輸入輸出流

    談談PHP的輸入輸出流

    談談PHP的輸入輸出流...
    2007-02-02
  • PHP調(diào)用MySQL的存儲過程的實現(xiàn)代碼

    PHP調(diào)用MySQL的存儲過程的實現(xiàn)代碼

    MySQL好像從5.0開始才引入存儲過程,反正以前做應用的時候從沒碰過,不過現(xiàn)在因為主要作內(nèi)部系統(tǒng)
    2008-08-08
  • 如何讓PHP編碼更加好看利于閱讀

    如何讓PHP編碼更加好看利于閱讀

    在本篇文章里小編給大家分享了關于如何讓PHP編碼更加好看利于閱讀的方法和習慣,需要的朋友們可以學習下。
    2019-05-05
  • PHP實現(xiàn)讀取Excel文件的記錄(一)

    PHP實現(xiàn)讀取Excel文件的記錄(一)

    這篇文章主要介紹了如何利用PHP讀取Excel文件的記錄,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,感興趣的可以跟隨小編了解一下
    2022-03-03
  • php mysql操作mysql_connect連接數(shù)據(jù)庫實例詳解

    php mysql操作mysql_connect連接數(shù)據(jù)庫實例詳解

    php操作數(shù)據(jù)庫首先必須連接到指定的數(shù)據(jù)庫,連接數(shù)據(jù)庫可以使用PHP mysql_connect函數(shù),本文章向大家介紹mysql_connect函數(shù)的使用方法和實例,需要的朋友可以參考一下
    2016-12-12
  • php實現(xiàn)批量刪除掛馬文件及批量替換頁面內(nèi)容完整實例

    php實現(xiàn)批量刪除掛馬文件及批量替換頁面內(nèi)容完整實例

    這篇文章主要介紹了php實現(xiàn)批量刪除掛馬文件及批量替換頁面內(nèi)容的方法,涉及php文件與目錄的遍歷、查找以及字符串與數(shù)組的遍歷與替換操作相關技巧,適用于utf-8編碼環(huán)境,需要的朋友可以參考下
    2016-07-07
  • php搜索文件程序分享

    php搜索文件程序分享

    php文件查找程序,輸入一個路徑確定后會遍歷目錄下所有的文件和文件夾,通過遞歸可以找到文件夾下面的每一個文件,再通過文件名和輸入的關鍵字匹配,則可以查找到你想要的文件,需要的朋友可以參考下
    2015-10-10
  • 基于php編程規(guī)范(詳解)

    基于php編程規(guī)范(詳解)

    下面小編就為大家?guī)硪黄趐hp編程規(guī)范(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • php中文字符截取防亂碼

    php中文字符截取防亂碼

    當漢字被截斷時,根據(jù)編碼規(guī)則他總是要把后邊的其他字符拉過來一起作為漢字解釋,這就是出現(xiàn)亂碼的原因。而值為0x81到0xff與0x00組合始終都顯示為“空” 根據(jù)這一特點,在substr的結(jié)果后面補上一個chr(0),就可以防止出現(xiàn)亂碼了
    2008-03-03

最新評論