作者s861175 (s861175)
看板PHP
标题[请益] 哪种写法效率比较好?
时间Sat Jun 29 21:25:50 2013
【table1】
no | type
_________
01 | a
02 | a
01 | b
03 | a
02 | b
01 | c
(以下省略上万笔)
【table2】
no | type
_________
02 | b
03 | a
01 | c
(以下省略上千笔)
join这两张表时,下列哪种语法效能会比较好?
(1.)
SELECT a.no FROM table1 AS a INNER JOIN table2 AS b ON a.no = b.no WHERE a.type = a AND b.type = a
(2.)
SELECT a.no FROM table1 AS a INNER JOIN table2 AS b ON a.no = b.no AND a.type = b.type WHERE a.type = a
(3.)效能一样
谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.36.211.42
※ 编辑: s861175 来自: 118.163.71.162 (06/30 10:12)
1F:→ anest:两边的no都重复的话 join出来会很多 06/30 11:18
2F:→ anest:感觉似乎用union all+where就可以了 06/30 11:19
补充说明:因为要抓两张表分别的栏位资讯,因为是范例所以省略了,不然应该是
SELECT a.no,a.info,b.info,(省略一堆栏位名) FROM
所以,希望是用join的方式
※ 编辑: s861175 来自: 118.163.71.162 (06/30 13:47)
3F:→ kosjason:说真的因为这只有范例SQL,没办法给予最正确的解答 06/30 20:59
4F:→ kosjason:不过你可以尝试 EXPLAIN SELECT 看一下效能 或许就有答案 06/30 21:00
5F:推 pttnews:假设 两边no 都有index,答案会是3 07/01 09:38
6F:→ pttnews:除了上述假设,你的sql也要正确,话说 a.type= a 是什麽 07/01 09:41
7F:推 abola921:如果是postgresql的话答案也是3, 都会先最佳化一次 07/02 17:23
8F:推 clifflu:mysql 现在会用参数调整最佳化方式,先 explain 看看 ? 07/04 19:36