Mysql 搜索两个表之间的一致性的最佳方法>;1米行
我有两张非常大的桌子,每张桌子的行数都超过1米。基本上,我需要的是显示结果与信息的2表混合时,发现巧合。简单来说,它们都有如下结构:Mysql 搜索两个表之间的一致性的最佳方法>;1米行,mysql,database,Mysql,Database,我有两张非常大的桌子,每张桌子的行数都超过1米。基本上,我需要的是显示结果与信息的2表混合时,发现巧合。简单来说,它们都有如下结构: TABLE_A: ------- id | item_id | some_fields_A TABLE_B: ------- id | item_id | some_fields_B 如您所见,它们都有一个唯一的字段item\u id。我想做的是找到两个表中的项目,并显示item\u id,一些字段\u A和一些字段B。我想知道提高性能的好方法,我已经尝试过
TABLE_A:
-------
id | item_id | some_fields_A
TABLE_B:
-------
id | item_id | some_fields_B
如您所见,它们都有一个唯一的字段item\u id
。我想做的是找到两个表中的项目,并显示item\u id
,一些字段\u A
和一些字段B
。我想知道提高性能的好方法,我已经尝试过简单的查询
SELECT item_id, some_fields_A, some_fields_B
FROM TABLE_A, TABLE_B
WHERE TABLE_A.item_id = TABLE_B.item_id
这显示了一个多小时后的结果。我正在使用InnoDB引擎 我想最好的方法是使用内部联接:
SELECT *
FROM table_a AS A
INNER JOIN table_b AS B
ON A.item_id = B.item_id
确保您的项目id是主键
执行以下工作:
SELECT a.item_id, a.some_fields_A, b.some_fields_B
FROM TABLE_A a
INNER JOIN TABLE_B b ON a.item_id = b.item_id;
在执行查询之前,只执行下面的查询一次
CREATE INDEX fields_a_idx ON TABLE_A(item_id);
及
意味着您需要为表建立索引以提高查询性能。您刚才说了什么?
CREATE INDEX fields_b_idx ON TABLE_B(item_id);