1.應(yīng)用場景: 使用mysql數(shù)據(jù)庫做查詢,,當(dāng)數(shù)據(jù)量超過200w時(shí),,查詢數(shù)度受到限制,此時(shí)為了避開這一瓶頸,,我們采取分庫分表的數(shù)據(jù)庫設(shè)計(jì)思想,,將數(shù)據(jù)按照一定規(guī)律保存至數(shù)據(jù)庫,常用的方式如下: 1.1使用時(shí)間作為依據(jù)分庫/分表 例如,,我們可以將數(shù)據(jù)按照月份保存在表中,,例如:translate_2015_01,translate_2015_02.......以此達(dá)到分表,、分庫的目的; 1.2 使用數(shù)字作為分庫,,分表標(biāo)準(zhǔn)(取余) 我們經(jīng)常會(huì)定義某個(gè)字段為自增長或者某個(gè)隨機(jī)數(shù),,或者某個(gè)特定編碼,利用這個(gè)編碼,,我們將其存放到不同的表中,,例如,我們想要定義30張表存我們獲得的數(shù)據(jù),, 第一個(gè)值為1,,我們用1%30=1,由此可知該數(shù)據(jù)放在第一張表,,又例如500%30=20,,該數(shù)據(jù)放入第20張表。 1.3使用md5區(qū)分(上傳文件等) 在上傳文件過程中,,將文件名的md5值取前3位作為上傳文件保存的文件夾名稱,,這樣便將上傳的文件保存在了3^3=27個(gè)文件夾中,方便下次尋找到該文件,; 2.使用分表,,分庫不利方面: 不利于做數(shù)據(jù)的統(tǒng)計(jì)操作,需要跨表跨庫,;增加設(shè)計(jì)的復(fù)雜度,;
參考文檔鏈接: Ibatis和Hibernate 數(shù)據(jù)庫分表(動(dòng)態(tài)表名映射)的實(shí)現(xiàn)方法:http://www./weishuangshuang/archive/2011/03/26/347080.html分庫分表的解決方案:http://fengbin2005./blog/1165038 數(shù)據(jù)庫水平切分的實(shí)現(xiàn)原理解析---分庫,分表,,主從,,集群,負(fù)載均衡器:http://zhengdl126./blog/419850Spring + iBatis 的多庫橫向切分簡易解決思路:http://www./topic/781317
SQL SERVER分區(qū)表方案 :http://terryli.blog.51cto.com/704315/163315 |
|