mysql 一简单查询效率问题, =1 快还是 >0快?

有一字段statustinyint(1)UNSIGNED已经建立索引请问哪个效率更高?WHEREstatus=0ANDstatus=1和WHEREstatus>=0谢谢朋... 有一字段
status tinyint(1) UNSIGNED

已经建立索引
请问哪个效率更高?

WHERE status=0 AND status=1

WHERE status>=0
谢谢朋友提醒,应该是

WHERE status=0 OR status=1

呵呵

前提条件还有一个,就是 status 的值大部分是 0 和 1, 比例占90%左右,不然会用enum类型了.
展开
 我来答
wolfccb
2006-09-07 · TA获得超过658个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:348万
展开全部
哎,你那个是轿咐无符号整数,也就是必然>=0的?那么>=0还有必要判断么?

你这两个=1和>0也不是等价的啊。如果是status=1 or status=0和status>1做效率对比,才有意思。

至于status=1 or status=0和status>1,你给定的前提下,我认为前者效率更高。从计算机组成原理上看,=的判断是做异或明唯运算,结果为0则相等;>的判断是做减法运算,结果符号位为0则被减数大。异或运算的效率要高于减法。而对于or算符,如果前者成立,则后者不需计算,因此建议你把or前面的表达式换成数据库中最多的一项(0或1)。当然,这只是我的理论分激帆培析,正确与否还有待你实践检验

以上。
路过的老狼
盖雅工场,全流程劳动力管理系统
2023-07-25 广告
选择一个好的 PHP 排班系统需要考虑以下几个因素:1. 功能需求:首先需要考虑系统需要具备哪些功能,比如排班管理、员工管理、考勤管理、报表统计等。确保所选系统能够满足您的需求。2. 易用性:考虑系统的界面是否友好,操作是否简单易用。一个好... 点击进入详情页
本回答由盖雅工场,全流程劳动力管理系统提供
cgh201
2006-09-07 · TA获得超过1137个赞
知道小有建树答主
回答量:931
采纳率:100%
帮助的人:629万
展开全部
WHERE status=0 AND status=1?
是Or吧手慎
应该是用WHERE status>=0快
用status>=0 每个字段只需要和0比猛陆较一次,
而用毕知敬status=0 OR status=1 每个字段可能需要比较2次
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kyako
2006-09-07 · TA获得超过1270个赞
知道小有建树答主
回答量:908
采纳率:0%
帮助的人:823万
展开全部
WHERE status=0 AND status=1 应该改成WHERE status=0 OR status=1
这个快,因为=是洞猛烂确定一个变量,而 >是一个范围,我做过纳漏测试的! 如果数据库记录的查询字段 是INT型的,影响不大,但是如果是字符串型的,知誉就有问题了,并且如果是mysql的话,是在2000万条以上才有反映!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友18e209c6e
2006-09-07 · 超过24用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:61.5万
展开全部
where status=0 and status=1最快,但没有结果,也就是记录集为空
但我估计没有明显的区庆槐别,还是那位任兄说也不正确,郑差渗status=0 or status=1
status>喊脊=0 各有优势~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
halemax
2006-09-07 · TA获得超过1140个赞
知道大有可为答主
回答量:4183
采纳率:0%
帮助的人:3473万
展开全部
你的表非常大吗?运行一下对比一下时间不就知道了。

应该察觉不出来吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式