我是MySql的新手,假设我有一个这样的表:
**Month table**
-----------------
id month data
1 1 0.5
2 1 0.8
3 2 0.12
4 2 0.212
5 2 1.4
6 3 5.7
7 4 6.8
我如何根据月份将其拆分为不同的表,并使这些表在磁盘中可用?如果可以,我如何在以后引用这些表?例如:
**January table**
-----------------
id month data
1 1 0.5
2 1 0.8
**February table**
-----------------
id month data
1 2 0.12
2 2 0.212
3 2 1.4
**March table**
-----------------
id month data
1 3 5.7
**April table**
-----------------
id month data
1 4 6.8
等等。
谢谢你的帮助。
我研究了按范围分区,但我不认为它能满足我的目的,因为它不能创建更小的表。我想写一个过程,但不知道从哪里开始。
1条答案
按热度按时间jslywgbw1#
如果您的目的只是简单地按月加快查询速度,那么只需在month或timestamp列中添加一个索引即可。分区可以加快查询速度,但也会减慢查询速度。
This is incorrect .
分区将这一概念推进了一步,它使您能够根据可以根据需要设置的规则在文件系统中分布各个表的各个部分。实际上,表的不同部分作为单独的表存储在不同的位置。
你可以按月份将alter your existing table分成12个分区。如果你已经有一个月份列...
如果您有一个日期或时间戳列,请将其转换为月份。
一般来说,你不引用单独的分区。你插入和查询主表。分区点是透明的。如果有一个适用的
where
子句将从相关分区读取。但是您可以使用分区的名称通过partition子句查询各个分区。
除了调试每个分区中的内容外,通常不需要执行此操作。