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上。索引重建時,它可能只是暫時放緩嗎? –