• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    多版本的實施

    發布時間:  2012/8/24 17:32:36

    因為InnoDB是多版本化的數據庫, 它必須保持關于表空間中舊版本行的信息。這個信息被存在名為rollback segment(在Oracle中模擬數據結構之后)的數據結構中。

    內部地,InnoDB往存在數據庫中的每一行中添加兩個域。一個6字節的域說明插入或更新該行的最后一個事務的事務識別符。同時,一個刪除也被內部處理為一個更新,其中行中一個特殊的位被設置來標注該行為已刪除。每一行也包含一個稱為滾動指針的7字節域。滾動指針指向一個被寫到回滾片斷的撤銷日志記錄。如果該行被更新,撤銷日志記錄包含在該行被更新之前重建該行的內容必需的的信息。

     

    InnoDB使用在回滾片斷中的信息來執行在事務回滾中需要的撤銷操作。它也使用這個信息來為一個持續讀構建更早版本的行。

     

    在回滾片斷中的撤銷日志被分為插入和更新撤銷日志。插入撤銷日志僅在事務回滾中需要,且只要事務一提交就可以被丟棄。更新撤銷日志也被用在持續讀中,而且它們僅在當前沒有被InnoDB分配給一個快照的事務之后被丟棄,這個快照在持續讀中可能會需要更新撤銷日志的信息來建立一個數據庫行的早期版本。

     

    你必須記得規律地提交你的事務,包括那些只發布持續讀的事務。否則, InnoDB不能從更新撤銷日志丟棄數據,并且回滾片斷可能變得太大,填滿你的表空間。

     

    在一個回滾片斷里,一個撤銷日志記錄的物理尺寸典型地小于相應的已插入行或已更新行。你可以用這個信息來計算回滾片斷需要的空間。

     

    在InnoDB多版本化方案中,當你用SQL語句刪除一行之時,該行沒有被從數據庫立即物理刪除掉。只有當InnoDB可以丟棄為刪除而被寫的更新撤銷日志記錄時,InnoDB也物理地從數據庫刪除相應行和它的索引記錄。這個刪除操作被成為精華,它運行得很快,通常與做刪除的SQL語句花的時間在一個數量級 電腦硬件www.boydavid.com

    在某一情景下,在那里,用戶以幾乎相同的比率,小批次地在表中插入和刪除行,凈化線程開始滯后是可能的,并且表變得越來越大,使得每樣事都是磁盤綁定的而且非常慢。即使表僅載有10MB有用的數據,它可能變得用所有的死行占據10GB空間。在這種情況下,節流新操作,并分配更多的資源來凈化線程可能是比較好的。啟動選項和可設置全球變量innodb_max_purge_lag就是為這個目的而存在的。請參閱15.2.4節,“InnoDB 啟動選項” 以獲得更多信息。


    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線