在SQL中,在具有多个非聚集索引时,是怎么对增加数剧,删除数据和数据的更改的性能降低的
发布网友
发布时间:2022-04-10 07:10
我来回答
共1个回答
热心网友
时间:2022-04-10 08:39
例如你有一个 学生表 ( 学号, 姓名, 性别, 出生年月日 )
假设
学号是主键+ 聚集索引
姓名上面有个 非聚集索引
那么当你 INSERT INRO 学生表 的时候。
数据库需要把数据写到表里面, 同时写索引信息。
当你 DELETE 学生表 的时候。
数据库需要把数据从表里面删除, 同时更新索引信息,把相应的索引数据也删除掉。
当你 UPDATE 学生表 SET 姓名 = ... WHERE 学号 = ... 的时候。
数据库需要更新表中数据, 还要去 更新索引的信息。
当你 UPDATE 学生表 SET 出生年月日 = ... WHERE 学号 = ... 的时候。
数据库需要更新表中数据。 由于 出生年月日 上面没索引, 因此不需要更新索引了。