多表选择与JOIN(性能)

Chr*_*ens 34 mysql

从MySQL中的多个表中进行选择时,以下两个查询都返回相同的结果集.

其中一个查询比另一个查询更好还是更有效?从我对小数据集的测试(每个表中约2k行),它们都在大约相同的执行时间内返回相同的结果集.

查询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;
Run Code Online (Sandbox Code Playgroud)


查询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;
Run Code Online (Sandbox Code Playgroud)

Mah*_*mal 26

它们是相同的,但语法不同.所以你不应该期望两种语法之间有任何性能差异.但是建议使用最后一种语法(ANS SQL-92语法),有关详细信息,请参阅以下内容: