MySQL 查询用 Case If 的性能

global_biz2 2016-11-30 05:58:42
Hi,

MySQL 查询时候用 select (case when x=y then m else n end), (if x=y, m, n) from test, 里面用到 case 与 if 两个函数,

从字数上来看, case 比 if 要多,

从性能上来比较,用 case 会比用 if 要慢还是要快?或者其实是一样?

请帮忙看下,谢谢。
...全文
1399 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
global_biz 2016-12-11
  • 打赏
  • 举报
回复
谢谢,结贴
LongRui888 2016-12-01
  • 打赏
  • 举报
回复
实际上很多函数内部的逻辑就是case when,比如有一个函数是nullif,这个函数在sql server,oracle,mysql了都有,就是比如: nullif(0,1):就是如果第一个参数值是null,那么返回1,说白了就是 case when 参数1 is null then 参数2 else 参数1 end 所以,说到底,if函数逻辑也是一样的,性能区别不多。 sql语句一般来说最大的性能消耗,就是查询数据的过程,如果进行的判断比较次数越少,要读取的数据越少,性能就会越高,至于 if 和case when这种语句,最后转换成 机器指令之后,基本上可以忽略不计,因为cpu速度是非常之快的,而读取数据本身要经过硬盘,好的化也要经过内存,cpu的速度比这些快上几千倍
致命的西瓜 2016-12-01
  • 打赏
  • 举报
回复
考虑应用场景就行了,效率没什么差别

56,803

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧