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

mysql 讀寫分離(實(shí)戰(zhàn)篇)

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

  Jan Kneschke在《MySQL Proxy learns R/W Splitting》中詳細(xì)的介紹了這種技巧以及連接池問題:
  為了實(shí)現(xiàn)讀寫分離我們需要連接池。我們僅在已打開了到一個后端的一條經(jīng)過認(rèn)證的連接的情況下,才切換到該后端。MySQL協(xié)議首先進(jìn)行握手。當(dāng)進(jìn)入到查詢/返回結(jié)果的階段再認(rèn)證新連接就太晚了。我們必須保證擁有足夠的打開的連接才能保持運(yùn)作正常。
  實(shí)現(xiàn)讀寫分離的LUA腳本:
  
復(fù)制代碼 代碼如下:

-- 讀寫分離
  --
  -- 發(fā)送所有的非事務(wù)性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

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

相關(guān)文章

  • MySQL提示:The server quit without updating PID file問題的解決辦法

    MySQL提示:The server quit without updating PID file問題的解決辦法

    今天網(wǎng)站web頁面提交內(nèi)容到數(shù)據(jù)庫,發(fā)現(xiàn)出錯了,一直提交不了,數(shù)找了下原因,發(fā)現(xiàn)數(shù)據(jù)寫不進(jìn)去!第一反應(yīng),重啟mysql數(shù)據(jù)庫,一直執(zhí)行中,停止不了也啟動不了,直覺告訴我磁盤滿了 !
    2014-04-04
  • MySQL大表中重復(fù)字段的高效率查詢方法

    MySQL大表中重復(fù)字段的高效率查詢方法

    MySQL大表重復(fù)字段應(yīng)該如何查詢到呢?這是很多人都遇到的問題,下面就教您一個MySQL大表重復(fù)字段的查詢方法,供您參考
    2012-12-12
  • MySQL 發(fā)生同步延遲時Seconds_Behind_Master還為0的原因

    MySQL 發(fā)生同步延遲時Seconds_Behind_Master還為0的原因

    騰訊云數(shù)據(jù)庫 MySQL 的只讀實(shí)例出現(xiàn)了同步延遲,但是監(jiān)控的延遲時間顯示為 0,而且延遲的 binlog 距離非 0,且數(shù)值越來越大。臨時解決之后,仔細(xì)想了一想,Seconds_Behind_Master 雖然計算方式有點(diǎn)坑,但是出現(xiàn)這么“巨大”的誤差還是挺奇怪的,本文就來分析下這個問題
    2021-06-06
  • mysql分頁時offset過大的Sql優(yōu)化經(jīng)驗(yàn)分享

    mysql分頁時offset過大的Sql優(yōu)化經(jīng)驗(yàn)分享

    mysql分頁是我們在開發(fā)經(jīng)常遇到的一個功能,最近在實(shí)現(xiàn)該功能的時候遇到一個問題,所以這篇文章主要給大家介紹了關(guān)于mysql分頁時offset過大的Sql優(yōu)化經(jīng)驗(yàn),文中介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起看看吧。
    2017-08-08
  • MySQL索引設(shè)計原則深入分析講解

    MySQL索引設(shè)計原則深入分析講解

    為了使索引的使用效率更高,在創(chuàng)建索引時,必須考慮在哪些字段上創(chuàng)建索引和創(chuàng)建什么類型的索引。索引設(shè)計不合理或者缺少索引都會對數(shù)據(jù)庫和應(yīng)用程序的性能造成障礙。高效的索引對于獲得良好的性能非常重要。設(shè)計索引時,應(yīng)該考慮相應(yīng)準(zhǔn)則
    2023-01-01
  • 一步步教你MySQL查詢優(yōu)化分析教程

    一步步教你MySQL查詢優(yōu)化分析教程

    這篇文章主要給大家介紹了關(guān)于MySQL查詢優(yōu)化分析的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • mysql如何在已有數(shù)據(jù)庫上統(tǒng)一字符集

    mysql如何在已有數(shù)據(jù)庫上統(tǒng)一字符集

    這篇文章主要介紹了mysql如何在已有數(shù)據(jù)庫基礎(chǔ)上換字符集,數(shù)據(jù)庫里面,部分?jǐn)?shù)據(jù)表和數(shù)據(jù)是latin1的,部分?jǐn)?shù)據(jù)表和數(shù)據(jù)是UTF8,還有部分表,表結(jié)構(gòu)是utf8而數(shù)據(jù)是latin1,下面說一下,怎么樣字符集統(tǒng)一成utf8,需要的朋友可以參考下
    2019-06-06
  • 探討Mysql中OPTIMIZE TABLE的作用詳解

    探討Mysql中OPTIMIZE TABLE的作用詳解

    本篇文章是對Mysql中OPTIMIZE TABLE的作用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL啟動時InnoDB引擎被禁用了的解決方法

    MySQL啟動時InnoDB引擎被禁用了的解決方法

    最近在工作中遇到一個問題,現(xiàn)將解決的方法分享出來供大家參考學(xué)習(xí),下面這篇文章主要給大家介紹了關(guān)于MySQL啟動時InnoDB引擎被禁用了的解決方法,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • 淺析mysql 語句的調(diào)度優(yōu)先級及改變

    淺析mysql 語句的調(diào)度優(yōu)先級及改變

    本篇文章是對mysql語句的調(diào)度優(yōu)先級及改變進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評論