我有一个数据库,其中大多数表都有表的删除标志。因此系统会软删除项目(因此除非管理员无法访问它们)
让我担心的是,几年后,当表变得更大时,系统的整体速度将会降低。
我能做些什么来抵消这样的影响。
- 我是否索引删除字段?
- 我是否将已删除的数据移动到相同的删除表并在取消删除时返回?
- 随着时间的推移,我是否将数据分散到几个 MySQL 服务器上? (基于增长)
如果有任何建议或故事,我将不胜感激。
更新:
所以分区似乎是关键。但是分区不会只创建两个“表”,一个包含已删除的项目,一个没有删除的项目。
所以随着时间的推移,删除的分区会变大,偶尔从中提取数据会很慢(并且随着时间的推移会变慢)
我应该担心速度差异吗?因为我通过某个键值获取大部分(如果不是全部)数据(有些是搜索,但对于此设置它们可能很慢)
最佳答案
我会根据 DELETE
标志对表进行分区。
删除的行将物理保存在其他地方,但从 SQL
的角度来看,表保持不变。
关于mysql - 如何解决软删除项目的缩放问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1049700/