Mysql 搜索两个表之间的一致性的最佳方法>;1米行

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。我想知道提高性能的好方法,我已经尝试过

我有两张非常大的桌子,每张桌子的行数都超过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
。我想知道提高性能的好方法,我已经尝试过简单的查询

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);