我应该检查一个键是否存在之前插入或处理异常插入



哪个操作更昂贵——在INSERT操作之前发出SELECT查询,还是在INSERT操作期间处理异常?

例如,假设我想要保留一些用户请求参数,例如param1(主键&(唯一索引)、param2param3到数据库表,如果已经存在重复键,则需要显示通知。此外,假设这是一个实时场景,整个过程预计不会超过500ms。

为什么经常建议为三个参数执行插入语句,然后处理插入异常以满足重复?我知道抛出异常是有代价的——数据库查询的代价是否大于抛出异常的代价?

如果我插入1,000,000次,先检查,然后插入,那就是1,000,000次检查,总共有957,512次插入针对数据库的1,957,512个操作。对于42,488条未通过初始检查的记录,我仍然需要向用户发送消息。

如果我插入并抛出一个异常,我就有1,000,000个针对数据库的操作和42,488个异常要处理。

做生意的第一种方式就是在数据库上做更多的工作。

最新更新