开发中经常遇到新增数据时判断该数据是否已经存在做唯一性校验。
对常用的方法做个比较。
SELECT COUNT(*) FROM TABLE T WHERE T.XX = 'XX'; --耗时3s
SELECT 1 FROM TABLE T WHERE T.XX = 'XX'; -- 耗时0.04s
SELECT 1 FROM DUAL WHERE EXISTS (SELECT 1 FROM TABLE T WHERE T.XX = 'XX');-- 耗时0.015s
SELECT COUNT(*) FROM DUAL WHERE EXISTS (SELECT 1 FROM TABLE T WHERE T.XX = 'XX');-- 耗时0.015s
测试数据 100000条以上。
🥳
本文对比了在数据库中进行数据唯一性校验的不同SQL方法,包括使用COUNT(*), SELECT 1, 和EXISTS关键字的性能差异。通过实验发现,使用EXISTS关键字结合DUAL表的方法耗时最短,对于大数据量(10万条以上)的场景,优化效果明显。
927

被折叠的 条评论
为什么被折叠?



