首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用毫秒(bigInt)值在一天内使用mysql分区?

问如何使用毫秒(bigInt)值在一天内使用mysql分区?
EN

Stack Overflow用户
提问于 2017-01-12 20:06:30
回答 1查看 201关注 0票数 0

我想使用mysql分区功能。

我有一个列log_time,在其中我将毫秒存储为bigint (假设我不能修改它)。

我想要31个分区,每天一个(使用log_time值计算)。

我尝试过的:

代码语言:javascript
复制
alter table my_table partition by hash(day(from_unixtime(log_time/1000))) partitions 31;

我得到:这个分区函数是不允许的。

似乎mysql只允许将特定函数作为要计算分区的散列的一部分,而from_unixtime()似乎不是其中之一(?)

如何在log_time上实现这种分区?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-01-13 00:36:49

不要使用BY HASH,它不会像你想的那样工作。特别是,它不会加快您的处理速度。

相反,请考虑BY RANGE,并且不要使用复杂的公式。与其将毫秒转换为一天,不如采用另一种方式--将day常量扩展为毫秒。

既然您似乎要清除旧数据,那么BY RANGE就更合适了--您可以简单地使用DROP PARTITION和REORGANIZE来获得新的价值。有关更多讨论,请参阅:http://mysql.rjweb.org/doc.php/partitionmaint

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41612835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档