天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php多數據庫支持的應用程序設計第1/2頁

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

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

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

php技術php多數據庫支持的應用程序設計第1/2頁,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 琪琪午夜福利免费院 | 欧美视频毛片在线播放 | 人妻无码AV中文系列 | 国产精品久久久久久久久免费下载 | 果冻传媒在线播放 | 忘忧草在线影院www日本 | 男助理憋尿PLAY灌尿BL出去 | 亚洲爆乳无码精品AAA片蜜桃 | 一本道高清无码v | 5566精品资源在线播放 | 亚洲精品久久久久AV无码林星阑 | 超碰97超碰在线视频哦 | 交换年轻夫妇HD中文字幕 | YELLOW视频在线观看免费版高清 | 成人免费毛片观看 | 尹人久久大香找蕉综合影院 | 爱情岛论坛免费在线观看 | 久青草国产在线视频亚瑟影视 | 天津相声广播在线收听 | 女教师苍井空体肉女教师S242 | 久久中文字幕免费高清 | 特黄特黄aaaa级毛片免费看 | 蜜臀AV中文字幕熟女人妻 | 8050午夜二级一片 | 亚洲欧洲无码AV在线观看你懂的 | 好男人在线高清WWW免费观看 | 午夜不卡久久精品无码免费 | 美女全光末满18勿进 | 亚洲视频免费 | 一色屋精品亚洲香蕉网站 | 国产亚洲精品看片在线观看 | 91精品国产91 | 美女打开双腿扒开屁股男生 | 女厕所边摸边吃奶边做爽视频 | 婷婷五月久久丁香国产综合 | 欧美精品久久久久性色AV苍井 | 伊人久久大香线蕉综合影 | 国产WW高清大片免费看 | 日本美女色 | 国产精品久久久久久久人人看 | 久久这里只有精品国产99 |