mysql - sql判断某一条数据的一个字段值,是在sql中限制条件然后判断数量、还是直接检索这个字段,哪个效率最高?
迷茫
迷茫 2017-04-17 15:14:25
[MySQL讨论组]

要判断某一条数据的某一个字段的值,是在sql中限制条件然后判断数量、还是直接检索这个字段,哪个效率最高?
举例:A表中,要判断id=1的数据flag是1还是0,flag的值只能是1或0。
以下两个sql哪个销量高?
1.在sql中限制条件然后判断数量

select count(*) from A where id = 1 and flag = 1;

2.直接检索这个字段

select flag from A where id = 1;

这个表的数据量和字段数量、数据库类型对结果有影响吗?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
PHPz

尽量减少SELECT COUNT(*) FROM tablename WHERE COL = 'value’ 这种查询;
非要用count的话,尽量count(index),对索引进行count。

Tips:如果你的表中有类似标志位(比如是否逻辑删除)的字段,那么在其上建立一个索引,会把count(*)的速度提高数倍。

巴扎黑

2 的高

黄舟

id是主键的话,这两个写法的效率基本是一样的,具体要看sql语句的执行计划。
flag字段只有两个值,建索引意义不大。
从sql语句和业务逻辑的对应关系上,写法2更好一点。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号