我是MySQL的新手,所以如果这个问题看起来很愚蠢,请提前道歉。我有一个事务日志表,它非常大(包含18M行),并且正在以非常快的速度增长。超过3个月的记录不会在日常流程中使用,因此我正在寻找一种方法来拆分表,然后对较旧的记录进行归档。我正在考虑将表分区作为实现此目的的一种方法。我的问题是:
如果我根据日期列对表进行分区,会对不基于分区日期列的索引有何影响?如果有一个select查询使用这些索引中的一个,那么是否也会搜索包含较旧记录的分区?因为对我来说,这有点破坏了分区的全部意义。
你有没有其他推荐的方法?
提前谢谢。
发布于 2015-12-17 02:24:57
(不回答)
PARTITIONing仅在少数用例中有用。让我们看看您的SELECTs,这样我们就可以考虑它们中的任何一个是否会从分区中受益。
如果您的查询类似于“计算上周的小部件数量”,那么您可能正在考虑“汇总表”之类的数据仓库技术。这在性能上是非常有效的,并且(通常)不涉及分区。
有关分区用例的更多信息:http://mysql.rjweb.org/doc.php/latlng
https://stackoverflow.com/questions/34307861
复制相似问题