xRo*_*bot 8 mysql sql database join query-optimization
我有2张桌子:
书(身份证,头衔,年龄)----> 100亿行
作者(id,book_id,name,born)----> 1000万行
现在,假设我有一本书的通用ID.我需要打印这个页面:
Title: mybook
authors: Tom, Graham, Luis, Clarke, George
Run Code Online (Sandbox Code Playgroud)
那么......最好的方法是什么?
1)这样的简单连接:
Select book.title, author.name
From book, author
WHERE ( author.book_id = book.id ) AND ( book.id = 342 )
Run Code Online (Sandbox Code Playgroud)
2)为了避免加入,我可以做2个简单的查询:
Select title FROM book WHERE id = 342
Select name FROM author WHERE book_id = 342
Run Code Online (Sandbox Code Playgroud)
什么是最有效的方式?
第一个.这只是一次往返.它需要一些处理来将作者行折叠成一个逗号分隔的列表,就像你想要的那样,但这基本上是样板代码.
单独的相关查询是一个坏习惯,会比大多数事情更快地杀死你的表现.