Mysql
MySQL:如何根據月份進行分區
我有一個以 id 作為主鍵和日期列的表。
我想對數據進行分區..我覺得月份是最好的選擇,這樣我就有 12 個分區..我如何實現這一點!
我在 AWS RDS 上使用 mysql 5.6。
alter table report.track_pdp_visit partition by hash(start_date);
它給了我以下錯誤:
欄位“start_date”是此類分區不允許的類型
從這裡開始,下面是一個
YEAR
適當更改範圍分區的範例。這是手冊中解釋如何更改表和添加分區的部分。你應該可以從這裡拿走它。
CREATE TABLE employees ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30), hired DATE NOT NULL DEFAULT '1970-01-01', separated DATE NOT NULL DEFAULT '9999-12-31', job_code INT, store_id INT ) PARTITION BY RANGE ( YEAR(separated) ) ( PARTITION p0 VALUES LESS THAN (1991), PARTITION p1 VALUES LESS THAN (1996), PARTITION p2 VALUES LESS THAN (2001), PARTITION p3 VALUES LESS THAN MAXVALUE);
有很多限制
PARTITIONs
。但是,它們沒有提供任何好處的原因有很多。你希望得到什麼?
HASH
除非您現在正在執行“表掃描”,否則分區不會提供任何性能優勢。Vérace 的建議是一種可以解決語法問題的方法,但同樣不太可能帶來性能優勢。
如果您需要刪除舊數據,那麼分區
DROP PARTITION
是一個很好的理由。RANGE
但這是唯一的原因。 請參閱我的部落格以獲取更多討論和執行 and 的DROP
程式碼REORGANIZE
。