比如需要从表 1-10 查出数据,列数一样的情况下,遍历 10 次 SQL,和拼接成一个 SQL 查询 1 次,会有优化么?
for (i=1;i<=10;i++) {
qeury("SELECT * FROM tb${i}");
}
qeury("
SELECT '1', * FROM tb1
UNION ALL
SELECT '2', * FROM tb2
UNION ALL
SELECT '3', * FROM tb3
....
");
1
514146235 2020-07-10 18:12:03 +08:00 1
一般来说,生产环境是禁止使用 UNION 的。
|
2
zhangysh1995 2020-07-13 14:23:48 +08:00
UNION ALL/UNION 有不少 bug,不同列数据类型合并会出现各种错误,比如 unsigned/signed 混合,char/varchar 混合,这些是有实际例子的,可以去 MySQL Bug 库搜一搜。
|