大容量資料庫對錶做分割

2022-02-13 13:42:43 字數 781 閱讀 9919

大容量資料庫對錶做分割可以提高效能。表分割有以下三種方式:

水平分割

根據一列或多列資料的值把資料行放到兩個獨立的表中。

水平分割槽將表分為多個表。每個表包含的列數相同,但是行更少。例如,可以將乙個包含十億行的表水平分割槽成 12 個表,每個小表表示特定年份內乙個月的資料。任何需要特定月份資料的查詢只需引用相應月份的表。

水平分割通常在下面的情況下使用:

• 表很大,分割後可以降低在查詢時需要讀的資料和索引的頁數,同時也降低了索引的層數,提高查詢速度。

• 表中的資料本來就有獨立性,例如表中分別記錄各個地區的資料或不同時期的資料,特別是有些資料常用,而另外一些資料不常用。

• 需要把資料存放到多個介質上。

水平分割會給應用增加複雜度,它通常在查詢時需要多個表名,查詢所有資料需要union操作。在許多資料庫應用中,這種複雜性會超過它帶來的優點,因為只要索引關鍵字不大,則在索引用於查詢時,表中增加兩到三倍資料量,查詢時也就增加讀乙個索引層的磁碟次數。

垂直分割

把主碼和一些列放到乙個表,然後把主碼和另外的列放到另乙個表中。將原始表分成多個只包含較少列的表。 如果乙個表中某些列常用,而另外一些列不常用,則可以採用垂直分割,另外垂直分割可以使得資料行變小,乙個資料頁就能存放更多的資料,在查詢時就會減少i/o次數。其缺點是需要管理冗餘列,查詢所有資料需要join操作。

庫表雜湊

表雜湊與水平分割相似,但沒有水平分割那樣的明顯分割界限,採用hash演算法把資料分散到各個分表中

資料庫大容量欄位的插入

從系統檔案中讀取資料的任務可以有帶bulk的openrowset函式來完成 openrowset bulk 檔案路徑 single blob single clob single cblob use test if object id file table is not null drop tabl...

ODBC相關大容量資料庫複製

不使用格式檔案進行大量複製 odbc 在不使用格式化檔案的情況下進行大容量複製 odbc bcp bind bcp batch 增強的日期 時間型別的大容量複製更改 ole db 和 odbc bcp功能 封裝 bulk copying from program variables 分配控制代碼並連...

mysql 匯入匯出大容量的資料庫

匯入資料庫 1,將要匯入的.sql檔案移至bin檔案下,這樣的路徑比較方便 2,同上面匯出的第1步 3,進入mysql mysql u 使用者名稱 p 如我輸入的命令列 mysql u root p 輸入同樣後會讓你輸入ysql的密碼 4,在mysql front中新建你要建的資料庫,這時是空資料庫...