mysql - 如何解决软删除项目的缩放问题?

标签 mysql scaling soft-delete

我有一个数据库,其中大多数表都有表的删除标志。因此系统会软删除项目(因此除非管理员无法访问它们)

让我担心的是,几年后,当表变得更大时,系统的整体速度将会降低。

我能做些什么来抵消这样的影响。

  • 我是否索引删除字段?
  • 我是否将已删除的数据移动到相同的删除表并在取消删除时返回?
  • 随着时间的推移,我是否将数据分散到几个 MySQL 服务器上? (基于增长)

如果有任何建议或故事,我将不胜感激。

更新:

所以分区似乎是关键。但是分区不会只创建两个“表”,一个包含已删除的项目,一个没有删除的项目。

所以随着时间的推移,删除的分区会变大,偶尔从中提取数据会很慢(并且随着时间的推移会变慢)

我应该担心速度差异吗?因为我通过某个键值获取大部分(如果不是全部)数据(有些是搜索,但对于此设置它们可能很慢)

最佳答案

我会根据 DELETE 标志对表进行分区。

删除的行将物理保存在其他地方,但从 SQL 的角度来看,表保持不变。

关于mysql - 如何解决软删除项目的缩放问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1049700/

相关文章:

model-view-controller - CakePHP 软删除的数据仍然显示在模型关联中

mysql - Magento 2.0 数据库的转储和文档

php - 如何使用不同的where子句将2个mysql查询合并为1个

html - SVG viewBox 缩放和裁剪

html - 用于实验的响应式屏幕尺寸

php - count() 在 laravel 中返​​回软删除项

php - 用新外键替换列值的方法?

mysql - Laravel 迁移失败

mysql - 在mysql中使用读复制

symfony - 在 api-platform 中使用 Doctrine 扩展软删除