028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

mysql仅查询一条数据时遇到的坑

下文给大家带来有关MySQL仅查询一条数据时遇到的坑内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完mysql仅查询一条数据时遇到的坑你一定会有所收获。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请、网络空间、营销软件、网站建设、醴陵网站维护、网站推广。

场景:有用户表user,有id,email,user_name,mobile等字段,现在要求根据指定email帐号查询一个用户。

乍一看,这个需求简单,不用考虑直接写出了一下sql

select * from user where email='xxx@yyy.com';

这时,就有可能踩雷了。

分析一下这个雷区,存在以下几种情形:

这种情况下,就悲剧了。由于没有索引,即使email的记录不重复,也会全表扫描。

解决方案

在仅查询一条记录的时候,无论where条件是否有索引有什么样的索引,最好在条件后面加limit 1限制一下。这样就能避免全表扫描,尽可能提高查询的效率。养成这样的意识习惯,就不会踩坑。

select * from user where email='xxx@yyy.com' limit 1;

原理:当mysql查询时,如果有limit 1限制,查询到满足条件的第一条记录的就返回结果,不会继续查询下去。

特殊情况

假如email列没有索引,且刚好记录在数据表的最后一条,这样limit 1实际上也会全表扫描,这种情况下就最好考虑给email列加索引。

对于上文关于mysql仅查询一条数据时遇到的坑,大家觉得是自己想要的吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。


网站标题:mysql仅查询一条数据时遇到的坑
标题路径:http://www.tsicrk.com/article/ghjodh.html

其他资讯

让你的专属顾问为你服务

2.0964s