普通索引唯一索引的区别

1、查询:

  唯一索引查到满足条件的数据后直接返回

  普通索引查到满足条件的数据后会继续匹配下一行是否满足条件

  影响:会将数据按页加载到内存中,多匹配一行的开销不大   除非刚好匹配的当前页的最后一条数据,需要继续从磁盘加载下一页

2、写

  唯一索引:需要判断是否重复,需要将对应的页从磁盘加载的内存中

  普通索引:普通索引使用change buffer(占用buffer pool的空间),直接将更新写入到buffer中,不用读盘

3、change buffer vs redo log

  change buffer:更改记录直接写入内存中,不用从内存中取出对应的数据页  降低了随机读的消耗

  redo log :更新时直接顺序写入磁盘,避免随机写的性能消耗

4、redo log  buffer 会导致mysql 偶尔抖一抖

  ---redo log 写满后需要flush脏页

  --buffer 不足需要flush脏页  

  

猜你喜欢

转载自www.cnblogs.com/man1s/p/11391835.html