假如有以下一个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大范围记录或整个表,这时明显是会降低数据库性能的。大家不妨说说自己的看法! 

解决方案 »

  1.   

    如果where带的条件是索引的话,而且还是主键,那肯定是加快速度的。其他情况 基本会增加负担。。
      

  2.   

    如果where条件用了索引,速度自然是快。但是update对位图索引消耗的代价比较大
    索引对查询有利,但是对DML操作都是有负担的,特别是insert。
    delete操作,会产生大量的回退、日志,并且不会回收高水位,自然会产生性能影响