数据库优化插入更新数据的方式

Posted 顾明思伊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库优化插入更新数据的方式相关的知识,希望对你有一定的参考价值。

mysql操作当记录不存在时insert,当记录存在时update。

1. 传统的操作方法

1. select * from table  where id = xxx   # 判断是否存在数据
2. 若不存在,则执行insert into table set name =ss
3. 若存在,则执行update table set name =xss

该方法效率低下。

2. 效率比较高的两种数据操作方式。

2.1 INSERT 中 使用ON DUPLICATE KEY UPDATE

insert into table set uid = 123456 ,apply_id = 521,color ='D1',created_at = NOW(),updated_at=NOW() on duplicate key update color ='D1' ,updated_at = NOW(); 

其工作原理是:当插入的数据与表中记录的数据的主键或唯一索引产生重复值,则就会执行旧行的更新;否则执行插入操作。如果行作为新记录被insert,则受影响行的值为1;如果原有的记录被更新,则受影响行的值为2。

2.2 使用REPLACE语句

replace into table set uid=121313,apply_id=311,color=‘A1',created_at=NOW(),updated_at=NOW()

其工作原理是:当表中存在数据时,则先执行delete操作,再执行insert操作;如果不存在重复数据,则执行insert操作。但该方法会导致自增主键id容易出现不连续性。

陪伴是最长情的告白

2020




顾明

记录生活   记录世界   

以上是关于数据库优化插入更新数据的方式的主要内容,如果未能解决你的问题,请参考以下文章

从片段向数据库中插入值时ListView不更新

mysql批量更新数据(性能优化) 第一种方式

多条数据批量插入优化方案

关于数据库优化3——在数据库插入更新大量数据的性能优化

Laravel - 使用大数据优化更新/插入查询的最佳方法是啥?

数据库插入或者更新大批量数据的性能优化