我有一个拥有2000万行的MySQL表。查询此数据库花费了太多时间。数据库格式如下:
Column Column Column Sector
data data data Retail
data data data Utility
data data data Retail
data data data Insurance
data data data Retail
data data data Agriculture
data data data Agriculture
data data data Retail
我希望能够按扇区对数据库进行分区。这应该提高指定扇区的查询的速度。我尝试过以下内容并不起作用。我哪里错了?
Alter table 'technical' partition by values in `sector`
答案 0 :(得分:4)
https://dev.mysql.com/doc/refman/5.7/en/partitioning-types.html
从这些分区类型中,我认为LIST COLUMNS分区将是您的最佳选择。从这里阅读有关它的更多细节..
https://dev.mysql.com/doc/refman/5.7/en/partitioning-columns-list.html
您的代码应该是......
ALTER TABLE technical
PARTITION BY LIST COLUMNS (sector)
(
PARTITION p01 VALUES IN ('Retail'),
PARTITION p02 VALUES IN ('Utility'),
PARTITION p03 VALUES IN ('Insurance'),
PARTITION p04 VALUES IN ('Agriculture')
);