MySQL使用為什么要分庫分表

發表于:2013-11-19來源:IT博客大學習作者:wubx點擊數: 標簽:MySQL
可以用說用到MySQL的地方,只要數據量一大, 馬上就會遇到一個問題,要分庫分表. 這里引用一個問題為什么要分庫分表呢?MySQL處理不了大的表嗎?

  可以用說用到MySQL的地方,只要數據量一大, 馬上就會遇到一個問題,要分庫分表.

  這里引用一個問題為什么要分庫分表呢?MySQL處理不了大的表嗎?

  其實是可以處理的大表的.我所經歷的項目中單表物理上文件大小在80G多,單表記錄數在5億以上,而且這個表屬于一個非常核用的表:朋友關系表.

  但這種方式可以說不是一個最佳方式. 因為面臨文件系統如Ext3文件系統對大于大文件處理上也有許多問題.

  這個層面可以用xfs文件系統進行替換.但MySQL單表太大后有一個問題是不好解決: 表結構調整相關的操作基本不在可能.所以大項在使用中都會面監著分庫分表的應用.

  從Innodb本身來講數據文件的Btree上只有兩個鎖, 葉子節點鎖和子節點鎖,可以想而知道,當發生頁拆分或是添加新葉時都會造成表里不能寫入數據.

  所以分庫分表還就是一個比較好的選擇了.

  那么分庫分表多少合適呢?

  經測試在單表1000萬條記錄一下,寫入讀取性能是比較好的. 這樣在留點buffer,那么單表全是數據字型的保持在800萬條記錄以下, 有字符型的單表保持在500萬以下.

  如果按 100庫100表來規劃,如用戶業務:

  500萬*100*100 = 50000000萬 = 5000億記錄.

  心里有一個數了,按業務做規劃還是比較容易的.

原文轉自:http://blogread.cn/it/article/5648

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97