SQL语句的索引

SQL语句的索引,sql,indexing,Sql,Indexing,我必须使用索引优化一些sql查询。我有select、insert和delete查询。显然,索引在select查询中很有用。但是insert和delete查询会发生什么?索引的使用会对它们的性能产生负面影响吗?是的。索引的使用应该谨慎且适当,以优化读取查询。添加的索引越多,插入和删除将影响性能。是 索引是查询性能与写入性能之间的折衷。通过分析最常用的查询,您应该仔细选择所需的索引,以获得所需的读取性能;同时关注插入/更新成本 虽然索引在查询时有助于提高性能,但必须维护索引,并且在更新或插入索引时需

我必须使用索引优化一些sql查询。我有select、insert和delete查询。显然,索引在select查询中很有用。但是insert和delete查询会发生什么?索引的使用会对它们的性能产生负面影响吗?

是的。索引的使用应该谨慎且适当,以优化读取查询。添加的索引越多,插入和删除将影响性能。

索引是查询性能与写入性能之间的折衷。通过分析最常用的查询,您应该仔细选择所需的索引,以获得所需的读取性能;同时关注插入/更新成本

虽然索引在查询时有助于提高性能,但必须维护索引,并且在更新或插入索引时需要付出代价


这也是为什么(除了大小限制之外),我们不只是索引表中的每一列:更新性能会急剧下降。

是的,因为对于每次插入、更新或删除,数据库引擎不仅要对表本身执行修改,还必须修改操作影响的任何索引

这种影响的程度当然取决于索引(它有多宽,是集群还是非集群,执行索引更新需要多少磁盘IO,等等)

因此,除了一些明显的情况(主键/唯一约束等),只有在存在性能问题(或可以可靠预测)时,才应谨慎添加索引