判断记录是否存在 exists 和 top 1 要比 count 快

之前在程序中验证记录是否存在,总是用select count(0) from table1的到记录数,然后在比对

今天做的页面中需要验证此类信息3此,所以就像有没有性能更好的办法

 思考count的工作原理后感觉是读取所有数据后进行统计的

而使用top 1 会不会只是取得第一个纪录后就跳出查询呢?

正好手头上又朋友上次做实验制作的一个300万记录的表,我就用来做了下实验

首先是

select count(0) from table1

执行时间 两次分别是 3秒,1秒

select top 1 0 from table1

两次执行时间都为0秒

exists( select  0 from table1)

两次都为0秒

当使用数据库中的某个字段来做验证时(特别是字符串型)的更明显

以上只是本人做的一个小小实验,如果哪里不合理大家多多指证,写的不好大家别丢石子就行了

原文地址:https://www.cnblogs.com/leilei/p/1301528.html