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

mysql 讀寫分離(基礎篇)

 更新時間:2009年04月13日 11:10:42   作者:  
MySQL Proxy最強大的一項功能是實現(xiàn)“讀寫分離(Read/Write Splitting)”。
基本的原理是讓主數(shù)據(jù)庫處理事務性查詢,而從數(shù)據(jù)庫處理SELECT查詢。數(shù)據(jù)庫復制被用來把事務性查詢導致的變更同步到集群中的從數(shù)據(jù)庫。

  Jan Kneschke在《MySQL Proxy learns R/W Splitting》中詳細的介紹了這種技巧以及連接池問題:

  為了實現(xiàn)讀寫分離我們需要連接池。我們僅在已打開了到一個后端的一條經(jīng)過認證的連接的情況下,才切換到該后端。MySQL協(xié)議首先進行握手。當進入到查詢/返回結(jié)果的階段再認證新連接就太晚了。我們必須保證擁有足夠的打開的連接才能保持運作正常。
實現(xiàn)讀寫分離的LUA腳本:
  -- 讀寫分離
  --
  -- 發(fā)送所有的非事務性Select到一個從數(shù)據(jù)庫
  

復制代碼 代碼如下:

if is_in_transaction == 0 and
  packet:byte() == proxy.COM_QUERY and
  packet:sub(2, 7) == "SELECT" then
  local max_conns = -1
  local max_conns_ndx = 0
  for i = 1, #proxy.servers do
  local s = proxy.servers[i]
  -- 需要選擇一個擁有空閑連接的從數(shù)據(jù)庫
  if s.type == proxy.BACKEND_TYPE_RO and
  s.idling_connections > 0 then
  if max_conns == -1 or
  s.connected_clients < max_conns then
  max_conns = s.connected_clients
  max_conns_ndx = i
  end
  end
  end
  -- 至此,我們找到了一個擁有空閑連接的從數(shù)據(jù)庫
  if max_conns_ndx > 0 then
  proxy.connection.backend_ndx = max_conns_ndx
  end
  else
  -- 發(fā)送到主數(shù)據(jù)庫
  end
  return proxy.PROXY_SEND_QUERY

注釋:此技巧還可以用來實現(xiàn)其他的數(shù)據(jù)分布策略,例如分片(Sharding)。

相關文章

  • 快速學習MySQL索引的入門超級教程

    快速學習MySQL索引的入門超級教程

    這篇文章主要介紹了快速學習MySQL索引的入門教程,包括索引的創(chuàng)建和刪除等基礎知識,需要的朋友可以參考下
    2015-11-11
  • MYSQL事務回滾的2個問題分析

    MYSQL事務回滾的2個問題分析

    在事務中,每個正確的原子操作都會被順序執(zhí)行,直到遇到錯誤的原子操作,此時事務會將之前的操作進行回滾?;貪L的意思是如果之前是插入操作,那么會執(zhí)行刪 除插入的記錄,如果之前是update操作,也會執(zhí)行update操作將之前的記錄還原
    2014-05-05
  • Mysql數(shù)據(jù)庫時間與系統(tǒng)時間不一致問題排查及解決

    Mysql數(shù)據(jù)庫時間與系統(tǒng)時間不一致問題排查及解決

    最近忽然發(fā)現(xiàn)個問題,Mysql數(shù)據(jù)庫時間與系統(tǒng)時間不一致,通過查找相關資料終于解決了,下面這篇文章主要給大家介紹了關于Mysql數(shù)據(jù)庫時間與系統(tǒng)時間不一致問題排查及解決的相關資料,需要的朋友可以參考下
    2023-06-06
  • Mysql version can not be less than 4.1 出錯解決辦法

    Mysql version can not be less than 4.1 出錯解決辦法

    這篇文章主要介紹了Mysql version can not be less than 4.1 解決辦法的相關資料,需要的朋友可以參考下
    2016-10-10
  • MySQL壓測神器HammerDB的部署及使用詳解

    MySQL壓測神器HammerDB的部署及使用詳解

    HammerDB?是一個開源的數(shù)據(jù)庫負載測試和基準測試工具,同時支持?Windows?和?Linux?平臺,這篇文章主要介紹了MySQL壓測神器HammerDB的部署及使用,需要的朋友可以參考下
    2022-08-08
  • 關于mysql合并表的詳細介紹

    關于mysql合并表的詳細介紹

    本篇文章是對mysql中的合并表進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL中Navicat自動備份的實現(xiàn)

    MySQL中Navicat自動備份的實現(xiàn)

    本文主要介紹了MySQL中Navicat自動備份的實現(xiàn),包括手動備份和自動定時備份,文中通過圖文示例介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-03-03
  • mysql如何讓左模糊查詢也能走索引

    mysql如何讓左模糊查詢也能走索引

    這篇文章主要介紹了mysql如何讓左模糊查詢也能走索引,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • mysql自增ID起始值修改方法

    mysql自增ID起始值修改方法

    本文介紹mysql自增ID的起始值修改與設置方法
    2013-11-11
  • Linux系統(tǒng)下Mysql使用簡單教程(一)

    Linux系統(tǒng)下Mysql使用簡單教程(一)

    這篇文章主要介紹了Linux系統(tǒng)下Mysql使用簡單教程(一)的相關資料,需要的朋友可以參考下
    2016-05-05

最新評論

夏津县| 东乡| 石屏县| 荥阳市| 黔西县| 平凉市| 正定县| 林西县| 岱山县| 丰县| 杭锦旗| 黎城县| 天台县| 奉化市| 全南县| 沭阳县| 临西县| 卢龙县| 瓮安县| 昭觉县| 兴文县| 胶州市| 确山县| 潞城市| 布拖县| 龙游县| 习水县| 全椒县| 宝坻区| 鄢陵县| 新巴尔虎左旗| 四川省| 福州市| 札达县| 宣汉县| 讷河市| 光山县| 武邑县| 慈利县| 澎湖县| 寻乌县|