MySQL查询是否存在的三种方式

本文对比了在不同配置下,有无索引时三种SQL查询方式的性能,包括使用IFNULL、LIMIT和EXISTS子句的方法,揭示了索引对查询速度的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置字段数记录数引擎
4CPU-16GRAM282474115InnoDB
1CPU-1GRAM282474115InnoDB

方式一

>>> select ifnull((select pk  from xxxx where uuid = '45949FF60A02082400506E6D8090476' limit 1 ), 0)

方式二

>>> select 1 from xxxx where uuid = '45949FF60A02082400506E6D8090476' limit 1;

方式三

>>> select EXISTS(select pk  from xxxx where uuid = '45949FF60A02082400506E6D8090476' limit 1 );

结果对比

uuid ‘45949FF60A02082400506E6D8090476’ 在表中并不存在,故三种方式均需要遍历整个表
每种方式各运行30次,取查询时间平均值
无索引:

配置方式一方式二方式三
4CPU-16GRAM1.01020.93151.0261
1CPU-1GRAM59.115359.71758.8327

有索引(NORMAL BTREE):

配置方式一方式二方式三
4CPU-16GRAM0.16380.16420.1658
1CPU-1GRAM0.20780.1980.1998
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值