2023年 1月 5日
在以前文章中我们说到不建议使用唯一索引,因为唯一索引在添加数据时,他会去先去查询是否有相同的字段,判断没有才会去插入,相比普通索引,唯一索引插入操作中多了一个查询操作。 虽说会影响插入操作,但是相比于查询效率的提高上,插入操作所损耗的性能可以忽略不记。所以在频繁查询的话,还是建议建索引。另外如果我们不建唯一索引,而采用代码实现唯一性的查找,可能会导致脏数据的产生。我们人为的对数据先进行查找,然后再插入。那么此时在高并发的情况下可能会导致在检查时没发现有重复的,但是检查完后,其他线程插入了该条数据,这时再插入就重复了。当然可以使用事务来解决,并且隔离级别要比较高。这种情况会导致锁表。那么在高并发的情况下更会降低效率,所以我们还不如建唯一索引。让数据库自己判断。
什么时候使用唯一索引呢,就是在业务中,字段是唯一的,并且查询频繁,数据量大的情况下。可以建唯一索引。