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类型了. 展开
status tinyint(1) UNSIGNED
已经建立索引
请问哪个效率更高?
WHERE status=0 AND status=1
和
WHERE status>=0
谢谢朋友提醒,应该是
WHERE status=0 OR status=1
呵呵
前提条件还有一个,就是 status 的值大部分是 0 和 1, 比例占90%左右,不然会用enum类型了. 展开
展开全部
哎,你那个是轿咐无符号整数,也就是必然>=0的?那么>=0还有必要判断么?
你这两个=1和>0也不是等价的啊。如果是status=1 or status=0和status>1做效率对比,才有意思。
至于status=1 or status=0和status>1,你给定的前提下,我认为前者效率更高。从计算机组成原理上看,=的判断是做异或明唯运算,结果为0则相等;>的判断是做减法运算,结果符号位为0则被减数大。异或运算的效率要高于减法。而对于or算符,如果前者成立,则后者不需计算,因此建议你把or前面的表达式换成数据库中最多的一项(0或1)。当然,这只是我的理论分激帆培析,正确与否还有待你实践检验
以上。
路过的老狼
你这两个=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 广告
2023-07-25 广告
选择一个好的 PHP 排班系统需要考虑以下几个因素:1. 功能需求:首先需要考虑系统需要具备哪些功能,比如排班管理、员工管理、考勤管理、报表统计等。确保所选系统能够满足您的需求。2. 易用性:考虑系统的界面是否友好,操作是否简单易用。一个好...
点击进入详情页
本回答由盖雅工场,全流程劳动力管理系统提供
展开全部
WHERE status=0 AND status=1?
是Or吧手慎
应该是用WHERE status>=0快
用status>=0 每个字段只需要和0比猛陆较一次,
而用毕知敬status=0 OR status=1 每个字段可能需要比较2次
是Or吧手慎
应该是用WHERE status>=0快
用status>=0 每个字段只需要和0比猛陆较一次,
而用毕知敬status=0 OR status=1 每个字段可能需要比较2次
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
WHERE status=0 AND status=1 应该改成WHERE status=0 OR status=1
这个快,因为=是洞猛烂确定一个变量,而 >是一个范围,我做过纳漏测试的! 如果数据库记录的查询字段 是INT型的,影响不大,但是如果是字符串型的,知誉就有问题了,并且如果是mysql的话,是在2000万条以上才有反映!
这个快,因为=是洞猛烂确定一个变量,而 >是一个范围,我做过纳漏测试的! 如果数据库记录的查询字段 是INT型的,影响不大,但是如果是字符串型的,知誉就有问题了,并且如果是mysql的话,是在2000万条以上才有反映!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
where status=0 and status=1最快,但没有结果,也就是记录集为空
但我估计没有明显的区庆槐别,还是那位任兄说也不正确,郑差渗status=0 or status=1
status>喊脊=0 各有优势~
但我估计没有明显的区庆槐别,还是那位任兄说也不正确,郑差渗status=0 or status=1
status>喊脊=0 各有优势~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的表非常大吗?运行一下对比一下时间不就知道了。
应该察觉不出来吧。
应该察觉不出来吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询