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引擎.任何帮助表示赞赏,谢谢.
做以下工作:
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的性能.
归档时间: |
|
查看次数: |
875 次 |
最近记录: |