功能測試:[8]談談怎樣測試分區表?

當某張表存儲數據量特別大時(一般為TB數量級),開發人員常常會將該表進行分區處理。

這種分而治之的方法,既可以緩解存儲數據的持續膨脹,又可以改善表的維護、備份、恢復及提升查詢性能。

工具/原料

分區表

方法/步驟

一、分區表的優點:

1、增強數據安全性:如果表的一個分區因為系統故障而損壞,其餘分區仍可正常使用。

2、減少修復時間:系統故障影響某個分區,因此只修復這部分分區即可。

3、均衡I/O:可以將表的不同分區,分配到不同磁盤上,來平衡I/O改善性能。

4、改善性能:對大數據表進行增加、修改、刪除時,可以分解到表的不同分區來進行。

5、用戶易用性:表分區對用戶透明,最終用戶感覺不到分區的存在。

由於分區表具有上述優點,將表分區已廣泛應用到項目中。那麼,對於測試人員來說,如何測試分區表呢?結合自己經驗,總結如下幾點:

二、如何測試分區表(以MYSQL數據庫為例)

1、分區是否成功創建:可手動運行存儲過程或等待存儲過程自動運行,運行後查看錶的分區情

況。是否成功創建了未來幾天或下個月的分區表。

舉例:採用Navicat for MySQL工具,首先選擇某分區表,右鍵選擇設計表。打開選項tab頁,點

擊【分割區】按鈕。可查看到表的分區情況。

2、數據是否存儲到對應的分區表中:

通常按照時間劃分的分區表,1號的數據需要存儲到1號的分區表中或者1月的數據需要存儲到1月

的分區表中。有時為了測試方便,需要測試人員手工創建表分區。創建分區表SQL如下:

功能測試:[8]談談怎樣測試分區表

功能測試:[8]談談怎樣測試分區表

創建分區後,需要錄入測試數據。測試人員需要準備跨年、跨月、每個月的第一天,中間一天和最後一天的測試數據。錄入後,需要檢查這些數據是否都存入對應日期的分區表中。

查詢SQL如下:explain partitions select * from 表名 where 表中日期字段 in (‘月初第一天’,'月末最後一天’);

三、是否成功刪除表分區

根據業務需求,某些分區會被刪除。如:刪除前3個月的數據。測試人員可以模擬這種情況,製作一些滿足刪除要求的數據。執行存儲過程後,查看分區表及分區表中的數據是否被刪除。這裡還需要檢查不滿足刪除要求的數據,是否被保留。

四、分區表是否提升性能

分區表和相關數據創建後,需要測試該分區表對應的功能是否滿足業務要求。在大數據量的情況下,性能是否有所提升。在對分區表的測試中,往往需要加入大數據量的性能測試。

五、是否要創建分區表

分區表雖然好處很多,但不是所有表都需要創建成分區表。一般可從數量級、表的維護性角度分析,該表是否需要創建成分區表? 歡迎大家有問題與我繼續交流。

注意事項

數據庫分區表

數據, 分區表, 功能測試,
相關問題答案