MYSQL用函数请三思

背景:最近公司有个同事遇到个需求需要用到mysql sleep函数,但结果却大出意料.
测试如下:
表:
CREATE TABLE test_sleep (
id int NOT NULL AUTO_INCREMENT,
a int NOT NULL,
b int NOT NULL,
PRIMARY KEY (id),
KEY a (a)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
数据:
INSERT INTO test_sleep VALUES (1, 10000, 1);
INSERT INTO test_sleep VALUES (2, 20000, 1);
INSERT INTO test_sleep VALUES (3, 30000, 1);
INSERT INTO test_sleep VALUES (4, 40000, 2);
INSERT INTO test_sleep VALUES (5, 50000, 1);

查询sql
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

为什么第三个查询的时间要5秒?(mysql5.7和8结果是一样的)
看下EXPLAIN
在这里插入图片描述
来总结下
查询5秒的sql,使用的是没有加索引的字段以及查询有GROUP BY 和 LIMIT。
在没有使用函数 SLEEP的时候,查询的速度是一样的,使用了sleep函数是五秒,总共数据一共5条,要是1000万呢,慎用mysql函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值