我想創建一個分區表,這個分區表將被填充數以百萬計的記錄。使用分區我怎樣才能讓特定的一天的記錄進入一個分區,然後是第二天的另一個分區,等等。然後,在九十多天後,我可以從最舊的分區中刪除舊數據。如何分區MySql表格以便與90天旋轉分區一起使用?
我試過這個聲明(哈希函數使用模數來對分區數量進行計算,哪個分區獲取數據)。這確保每天使用92個分區中的不同分區之一;除非它不起作用。
CREATE TABLE records(
id INT NOT NULL AUTO_INCREMENT,
dt DATETIME,
PRIMARY KEY (id)
)
PARTITION BY HASH((MOD(DAYOFYEAR(dt), 92) + 92))
PARTITIONS 92;
上面的代碼片段的問題是,在哈希表達式中使用的列必須是表中的唯一鍵。
我該如何解決這個問題,以便根據每天的記錄有九十個(ish)旋轉分區?
如果我只是將dt
列添加到主鍵,它似乎擊中所有分區,如果選擇一個日期範圍,這不是我想要的。
任何想法?