3
A
回答
2
如果大容量/旧的或存档的历史记录将被删除 - 彻底删除它们。
在近期内,对于手动用户级删除,通常首选“软删除”。手动删除可能不会超过记录的10%左右,因此索引效率仍然很高。
“软删除”还具有管理员可以取消删除错误删除的重大好处,并且参考完整性&交易的参考详细信息都很愉快地保留!
对于长期归档/删除,您希望从索引中删除这些记录 - 除了我倾向于避免的专有数据库“条件索引”之外,将它们从表中删除的除了专有的&将它们从索引中移除的唯一方法。
1
对于SQL Server ...
我想知道,如果你删除所有记录非常大的表(意味着大量的记录),你会想先截断它是非常重要的,再滴索引。它效率更高。
如果要删除记录的子集,并且应用了索引,请使用DELETE FROM {table} WHERE {condition}语法。如果这样做,则必须首先按照依赖关系层次结构的顺序从依赖表中删除。基本上与插入记录的方式完全相反,首先从非依赖表开始。
删除记录与表依赖层次:
DELETE FROM [table_dependent]; -- depends on table [table_non_dependent] because it has a FK that points to [table_non_dependent]
DELETE FROM [table_non_dependent]; -- not dependent on any other tables because it has no foreign keys (FK)
插入记录与表依赖层次:
SET IDENTITY_INSERT [table_non_dependent] ON
INSERT INTO [table_non_dependent]
(
[column that is not identity column],
[column that is not identity column],
[column that is not identity column]
)
VALUES
(
'1',
'2',
'3'
);
SET IDENTITY_INSERT [table_non_dependent] OFF
SET IDENTITY_INSERT [table_dependent] ON
INSERT INTO [table_dependent]
(
[column that is not identity column],
[column that is not identity column],
[table_non_dependent fk column]
)
VALUES
(
'1',
'2',
'3'
);
SET IDENTITY_INSERT [table_dependent] OFF
相关问题
- 1. 如何从mysql删除pma表而不影响其他表
- 2. 如何从表中删除索引键
- 3. 从分区中删除一些数据会影响本地索引?
- 4. Rails - 从非索引表中删除行
- 5. 索引字段删除不影响索引大小
- 6. 从基表中删除行是否影响该表的视图?
- 7. 从R中删除索引从矩阵中删除索引
- 8. AngularJS - 如何从URL中删除索引
- 9. 如何从索引中删除UIImageView?
- 10. 如果从主表中删除行,则从其他表中删除行
- 11. 如何整洁地从mysql删除pma表而不影响phpMyAdmin
- 12. MySQL从表中删除所有索引
- 13. getContentResolver()删除过滤器不会影响
- 14. 在删除前,如何获取多表删除查询在mySQL中会影响的行数?
- 15. 从DOM中删除元素是否会影响其事件处理程序?
- 16. 从DataGridView中删除一行给定其索引
- 17. 如何从一个列表中删除元素,如果其他列表包含要删除元素的索引
- 18. 如何从子表中删除从父表中删除的行?
- 19. 如何从Solr索引中删除逻辑删除的文档?
- 20. 为什么删除一行会影响下一行?
- 21. 从表中删除一行并重新索引表
- 22. 如何通过索引删除行
- 23. 删除表格中的空白而不影响其他行的放置
- 24. 如何通过索引从文件中删除一行?
- 25. 如何从datagridview中删除多行而不使用索引?
- 26. 如何同时从列表中删除多个索引?
- 27. Datatables:删除行而不会影响“(从X总条目中筛选)”
- 28. 如何从绑定源中删除对象不影响列表中的对象
- 29. 删除行而不影响Excel公式
- 30. Reset.css会影响其他样式表吗?
这是不是一个真正的SQL问题,它很可能取决于在DB上。索引重建时,它可能只是暂时放缓吗? –