【发布时间】:2015-05-18 14:40:33
【问题描述】:
到目前为止,我已经阅读了文档并且能够找到任何可以帮助我的东西。我也阅读了大量的博客文章,但似乎没有直接回答我的问题:
是否可以使用 ActiveRecord 管理 InnoDB 表中的表分区? 我真的希望保持非常干净,并且我试图避免编写外部脚本来尝试自动化随着时间的推移创建/删除分区。
【问题讨论】:
-
你想要什么分区管理?
-
@RickJames 好吧,让我们从任何类型开始。我目前正在跨两天宽的日期范围运行分区。我完全不知道使用 Rails 对分区进行任何内置管理,也没有遇到任何声称以任何智能方式执行此操作的 gem。
-
手动分区的最终目标是什么?也许您试图以错误的方式给猫剥皮,并且手动过程较少(例如,添加适当的索引)? ActiveRecord 是一种抽象,添加对 MySQL 已经尝试抽象掉的东西(AFAIK)的支持似乎确实很容易泄漏。
-
我们有大量的行(数亿行)。整个表的索引 > 256 gigs。对表进行分区可以将索引降低到可以保存在 RAM 中的合理值,从而大大提高性能。
-
顺便说一句,在您说行中的数据必须太多之前,有问题的表只有三列。这是一个只有整数的连接表。
标签: mysql ruby-on-rails postgresql activerecord database-partitioning