淺析如何將undo log從tablespace分離

從MySQL5.6.3之後,MySQL支持將undo日誌從tablespace(ibdataN)中獨立開來放到單獨的磁盤上。MySQL官方建議將undo放到ssd上,而把ibdata放在hd。(這裏似乎有爭論,國內某些大牛建議將順序讀寫的log日誌放在hdd)

比較重要的一個概念:

雖然undo log被分離出去了,但是其io處理還是在system tablespace內完成,所以定義上來講還是算tablespace的。文檔中原文如下:

“Because these files handleI/O operations formerly done inside the  system tablespace, we broaden the definition of system tablespace to include these new files. ”

undo logs 存放在rollback segment內

下面是三個相關參數:

用於設定創建的undo表空間的個數,在Install db時初始化後,就再也不能被改動了;

默認值爲0,表示不獨立設置undo的tablespace,默認記錄到ibdata中;否則,則在undo目錄下創建這麼多個undo文件,例如假定設置 該值爲16,那麼就會創建命名爲undo001~undo016的undo tablespace文件,每個文件的默認大小爲10M

物理文件存放位置

定義多少個‘active’的undo logs,默認值和最大值都是128,每個undolog能保存最多1024個事務,這個參數可以用來性能調優,官方建議先將這個參數設小然後逐步增大來觀察性能變化。(因爲如果一下子分配過多也可能用不到)還有一個參數 Innodb_available_undo_logs的意思是所有的undolog包括active和非active的






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章