小编典典

多表选择与JOIN(性能)

mysql

从MySQL中的多个表中选择时,以下两个查询均返回相同的结果集。

这些查询中的一个比另一个查询 更好
或更有效吗?根据我在一个小的数据集(每个表中约有2000行)的测试中,它们都在大约相同的执行时间上返回了相同的结果集。

查询1:

SELECT
    *
FROM
    products,
    product_meta,
    sales_rights
WHERE 
    (
        products.id = product_meta.product_id
        AND products.id = sales_rights.product_id
    )
    AND (...)
LIMIT 0,10;

查询2:

SELECT
    *
FROM
    products
INNER JOIN product_meta ON products.id = product_meta.product_id
JOIN sales_rights ON product_meta.product_id = sales_rights.product_id 
WHERE
    (...)
LIMIT 0,10;

阅读 477

收藏
2020-05-17

共1个答案

小编典典

它们是相同的,但是语法不同。因此,您不应该期望这两种语法之间的性能差异。但是,建议使用最后一种语法(ANS
SQL-92语法),有关更多详细信息,请参见以下内容:

2020-05-17