分区具有外键的mySQL表?
什么是合适的方法,因为mySQL显然不喜欢这个. 更新03/24: http://opendba.blogspot.com/2008/10/mysql-partitioned-tables-with-trigger.html How to handle foreign key while partitioning 谢谢! 最佳答案 它取决于分区表中行的大小是否需要分区的原因.如果行大小很小并且分区的原因是行数,那么我不确定你应该做什么. 如果行大小很大,那么您是否考虑过以下内容: 设P为分区表,F为be-be外键中引用的表.创建一个新表X:
并且至关重要的是,创建一个存储过程来向表P添加行.您的存储过程应该确定(使用事务),每当向表P添加一行时,相应的行将添加到表X.您不能允许行为以“正常”方式添加到P!如果继续使用存储过程添加行,则只能保证将保留参照完整性.但是,您可以以正常方式从P中自由删除. 这里的想法是你的表X有足够小的行,你应该不需要对它进行分区,即使它有很多行.我猜,桌子上的索引将占据相当大的一块内存. 如果您需要在外键上查询P,您当然会查询X,因为这是外键的实际位置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |