首先要看一个问题,if 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断:而 switch 只能对基本类型进行数值比较.两者的可比性就仅限在两个基本类型比较的范围内.说到基本类型的数值比较,那当然要有两个数.然后重点来了--if 语句每一句都是独立的,看下面的语句:if (a == 1) ...else if (a == 2) ...这样 a 要被读入寄存器两次,1 和 2 分别被读入寄存器一次.于是你是否发现其实 a 读两次是有点多余的,在你全部比较完之前只需要一次读入寄
比如: select id, name from table1 where name = 'x' union all select id, name from table2 where name = 'x' 与select * from (select id, name from table1 union all select id, name from table2) where name = 'x'. 哪一种方式性能更好一些呢? 希望高手能详细说明下, 并且考虑到有索引和无索引的情