MYSQL:在2个表> 1M行之间搜索重合的最佳方式

Jes*_*ana 2 mysql database mysqli

我有两个非常大的表>每行1M行.基本上,我需要的是显示结果,当找到巧合时,两个表的信息混合在一起.简化,他们都有这样的结构:

TABLE_A:
-------
id | item_id | some_fields_A


TABLE_B:
-------
id | item_id | some_fields_B
Run Code Online (Sandbox Code Playgroud)

如你所见,它们都有一个独特的领域item_id.我想要做的是找到两个表中的哪些项目并显示item_id,some_fields_A以及some_fields B.我想知道提高性能的良好做法,我尝试过简单的查询

SELECT item_id, some_fields_A, some_fields_B 
FROM TABLE_A, TABLE_B 
WHERE TABLE_A.item_id = TABLE_B.item_id
Run Code Online (Sandbox Code Playgroud)

超过1小时后显示结果.我正在使用InnoDB引擎.任何帮助表示赞赏,谢谢.

Cod*_*ver 5

做以下工作:

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

在执行查询之前,只执行一次以下查询.

CREATE INDEX fields_a_idx ON TABLE_A(item_id);
Run Code Online (Sandbox Code Playgroud)

CREATE INDEX fields_b_idx ON TABLE_B(item_id);
Run Code Online (Sandbox Code Playgroud)

意味着您需要对表进行索引以提高查询INDEX的性能.