我想知道下面哪种方法更快?1表查询与连接多个表查询性能
假设:
- 最大10,000种产品,每种产品都有1个用户ID,1个猫ID,3个额外的字段,以及5张图片。
- 90-99%的用户来到网站只是为了获取信息,而不是发布。
方法1:从查询得到一个表中的所有数据,而 “加盟”:
SELECT * FROM products WHERE ...
表:产品
id | name | poster_name | cat_name | code_1 | code_2 | content |
dimensions | contact | message | images |
方法2:得到的所有数据带“JOIN”的多个表格:
SELECT ... FROM products
LEFT JOIN cats ON products.cat_id = casts.id
LEFT JOIN users ON ....
表:产品
id | name | code_1 | code_2 | content | cat_id | poster_id |
表:猫
id | cat_name |
表:用户
id | poster_name |
表:额外
id | product_id | extra_info | extra_data |
表:图像
id | product_id | img_src |
什么是JOINT? – Agalo
@Agalo我用记事本来代替输入错误,然后得到另一个错字=))抱歉 –
查询的性能取决于很多事情,并且可能因系统而异。例如,你是否定义了任何索引?这些表中有多少条记录?一个表上的查询几乎总是比连接快,但它依赖于其他事情。如果您的一个表查询获得了一百万条记录,但您的连接只取得10条记录,则该连接可能(但不一定)会更快。很明显,对你而言,简单的测试就是最好的答案。 –