性能方面,当在表中批量插入数亿行时,聚簇索引是否有帮助?
LE:在INSERT之后,我必须将数据库投入生产,因此我将不得不创建一个或多个索引。
聚簇索引指定数据在数据页上排序。
插入数据时,必须对新数据进行排序并与现有值进行比较。这将产生开销。
一个例外是当你有一个标识列 - 在插入过程中生成。然后数据库知道新数据“在表的末尾”。
索引用于加速行的检索(SELECT)。它们仅对INSERT或DELETE或UPDATE具有反效果。而且,在您的情况下,如果INSERT是要在系统中执行的主要操作,则根本不要使用索引。即使在您的生产系统中,也要评估检索操作和插入/更新操作之间的比率,如果结果是检索操作占主导地位,那么您可以考虑索引。
注意:每当我们在表上定义主键时,就已经为该表创建了一个基本索引结构。因此,在没有任何特定的检索优化需求的情况下,实际上不需要设计和实现索引。
你可以在这里了解更多:https://www.geeksforgeeks.org/sql-indexes/