【发布时间】:2011-05-06 04:04:01
【问题描述】:
我有一个 MySQL 表:
CREATE TABLE responses (
id INT NOT NULL AUTO_INCREMENT,
other_id INT NOT NULL,
details TEXT,
deleted BOOLEAN,
PRIMARY KEY (id)
);
用户可以删除responses中的记录。
我的计划是使用deleted这个字段来实现删除。每当用户删除记录时,我都会将deleted 设置为1。
有时我可能想删除所有已删除的记录或将它们存档。我正在考虑使用分区来加快速度:
PARTITION BY LIST(deleted) (
PARTITION pActive VALUES IN (0),
PARTITION pDeleted VALUES IN (1)
);
我的问题是这会使删除行为变慢吗?现在,当我更改记录的“已删除”字段时,MySQL 需要将记录移动到完全不同的分区。看起来可能会很慢。
任何建议将不胜感激。
【问题讨论】:
标签: mysql performance database-design partitioning