1. 程式人生 > >大資料分庫、分表設計(mysql)

大資料分庫、分表設計(mysql)

1.應用場景:

  使用mysql資料庫做查詢,當資料量超過200w時,查詢數度受到限制,此時為了避開這一瓶頸,我們採取分庫分表的資料庫設計思想,將資料按照一定規律儲存至資料庫,常用的方式如下:

                    1.1使用時間作為依據分庫/分表

   例如,我們可以將資料按照月份儲存在表中,例如:translate_2015_01,translate_2015_02.......以此達到分表、分庫的目的;

                    1.2 使用數字作為分庫,分表標準(取餘)

我們經常會定義某個欄位為自增長或者某個隨機數,或者某個特定編碼,利用這個編碼,我們將其存放到不同的表中,例如,我們想要定義30張表存我們獲得的資料,  第一個值為1,我們用1%30=1,由此可知該資料放在第一張表,又例如500%30=20,該資料放入第20張表。

                    1.3使用md5區分(上傳檔案等)

  在上傳檔案過程中,將檔名的md5值取前3位作為上傳檔案儲存的資料夾名稱,這樣便將上傳的檔案儲存在了3^3=27個資料夾中,方便下次尋找到該檔案;

2.使用分表,分庫不利方面:

不利於做資料的統計操作,需要跨表跨庫;增加設計的複雜度;

參考文件連結: