语句1
(select id,title,shorturl from cms_article where id < 2500000 order by id desc limit 1) union all (select id,title,shorturl from cms_article where id > 2500000 order by id asc limit 1);
语句2
(SELECT id, title,shorturl FROM cms_article WHERE id = (SELECT max(id) FROM cms_article WHERE id < 2100000)) union all (SELECT id, title,shorturl FROM cms_article WHERE id = (SELECT min(id) FROM cms_article WHERE id > 2100000))
查询时间都差不多,0.0X几秒这样,那到底那个条科学一些,不是很懂,求科普。
explain (select id,title,shorturl from cms_article where id < 2500000 order by id desc limit 1) union all (select id,title,shorturl from cms_article where id > 2500000 order by id asc limit 1);
explain (SELECT id, title,shorturl FROM cms_article WHERE id = (SELECT max(id) FROM cms_article WHERE id < 2100000)) union all (SELECT id, title,shorturl FROM cms_article WHERE id = (SELECT min(id) FROM cms_article WHERE id > 2100000));
我觉得分成两条SQL比较好,第一条先查id,第二条再读内容。只是从理论上进行分析:复杂的SQL在解析时需要花费更多的时间。