我以前的印象是删除自动增量表中的行会损害 SELECT 性能,因此我一直使用名为“removed”的 tinyint 列来标记是否删除了某个项目。
我的 SELECT 查询是这样的:
SELECT * FROM items WHERE removed = 0 ORDER BY id DESC LIMIT 25
Run Code Online (Sandbox Code Playgroud)
但我想知道实际上是否只删除这些行有意义。少于 1% 的行被标记为“已删除”,因此 mysql 必须检查每行是否删除 = 0 似乎很愚蠢。
那么删除行会以任何方式损害性能吗?
我不认为删除行会对 select query 造成损害。通常,人们需要一个名为“已删除”的额外列[在您的情况下已删除]来提供类似恢复的功能。因此,如果您不提供恢复功能,那么您可以删除该行,据我所知,它不会影响选择查询。但在删除时请记住,它们也应该被删除,否则会导致错误或提供错误的结果。
| 归档时间: |
|
| 查看次数: |
1151 次 |
| 最近记录: |