假如有以下一个student表:sno sname sex sage
200 张三 男 20
300 李四 男 25
400 王五 女 23 primary key(sno),数据库默认会在此字段建立聚集索引,我们讨论的提前是select,update,delete,insert操作涉及到数据库的索引字段。索引是为加速查询,明显在select时可以提高数据库性能;由于在insert时,数据库需要维护索引,因此会降低数据库性能;如果update某条记录时,例如
update student set sex='男' where sno=200
这对数据库性能影响是怎样呢?这时需要维护索引么?如果update大范围或整个表的数据时候呢?如果delete某条记录,例如
delete * from student where sno=200,因为可以迅速定位这条记录,虽然需要维护索引,但性能一定下降么?
如果delete大范围记录或整个表,这时明显是会降低数据库性能的。大家不妨说说自己的看法!
200 张三 男 20
300 李四 男 25
400 王五 女 23 primary key(sno),数据库默认会在此字段建立聚集索引,我们讨论的提前是select,update,delete,insert操作涉及到数据库的索引字段。索引是为加速查询,明显在select时可以提高数据库性能;由于在insert时,数据库需要维护索引,因此会降低数据库性能;如果update某条记录时,例如
update student set sex='男' where sno=200
这对数据库性能影响是怎样呢?这时需要维护索引么?如果update大范围或整个表的数据时候呢?如果delete某条记录,例如
delete * from student where sno=200,因为可以迅速定位这条记录,虽然需要维护索引,但性能一定下降么?
如果delete大范围记录或整个表,这时明显是会降低数据库性能的。大家不妨说说自己的看法!
索引对查询有利,但是对DML操作都是有负担的,特别是insert。
delete操作,会产生大量的回退、日志,并且不会回收高水位,自然会产生性能影响