为什么Insert语句在索引表上执行速度较慢?
这实际上是同样的问题:
Why does it take more time to put all my groceries in the correct place in my kitchen
than leaving everything in the bags after I visited my groceries store?
这是因为在存放您的杂货时,您希望它们处于一个很好的,众所周知的位置,以便以后更容易找到它们.
数据库必须这样做.
>如果您有一个没有索引的表,它只能在表的末尾添加新数据.
>如果您有索引,则数据库必须执行更多工作.它可能仍然会将记录放在表的末尾,但另外它会更新其索引以确保如果你想在之后找到该记录,它会比没有索引更快地找到它.
这也意味着添加更多索引将进一步减慢插入速度.
应该很清楚,如果您之后也将使用它,您只想创建一个索引.如果您只创建索引并且之后没有使用它来提高查询的性能,则不需要索引,因为它只会减慢插入速度,而不会改进任何查询.