Sql语句中的limit 1能有效缩短查询时间

使用场景:

在根据非索引字段查询时,若查询结果只有一条记录,可以在sql语句中使用  " limit 1",来有效缩短查询时间。

缩短查询时间的原因:加入Limit后,查询结果能够被一级缓存保存!从底层分析的话,加入Limit 1后,匹配到一条数据后,就不会再往下查询了,所以,性能的提升和数据量的大小有很大关系。

实验: 

创建表t-user;

create table t_user( 
id int primary key auto_increment, 
email varchar(25), 
password varchar(25) 
);

使用存储过程插入1000000条记录:

CREATE DEFINER=`root`@`localhost` PROCEDURE `NewProc`()
BEGIN
DECLARE i INT; 
START TRANSACTION; 
SET i=0; 
WHILE i<1000000 DO 
INSERT INTO t_user VALUES(NULL,CONCAT(i+1,'@qq.com'),i+1); 
SET i=i+1; 
END WHILE; 
COMMIT;
END

在Navicat创建存储函数的步骤:

编写完后,一定要点击保存,然后才能点击运行。

  查询结果:

通过实验结果,发现使用limit 1可以有效缩短查询时间。使用这种方式避免了全表扫描。

但是若果插查询的数据位于表的末尾,这种查询效果不大。

例如:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值