0

2 つのテーブルを結合するために mysql でクエリを作成しています。また、両方のテーブルには 50,000 を超えるレコードがあります。

表 EMP 列 empid,

事業、

コード、

状態

テーブル EMPINFO

せっかちな、

事業、

コード、

プロジェクトタイプ、

使った時間、

スキル

各テーブルには候補キー [empid、project、code] があります。

したがって、INNER結合を使用してテーブルに結合すると

like this INNER JOIN 
ON a.empid = b.empid 
and a.project = b.project
and a.code = b.code

結果は出ていますが、外側のクエリに count(*) を追加してレコード数をカウントすると、何か接続に失敗するのに時間がかかります。

レコード数を取得するためにスピードアップする方法はありますか?

そして、内部結合クエリを高速化し、両方のテーブルに同じ候補キーを持つための提案をもっと聞きたいです。

4

1 に答える 1

0
INDEX(empid, project, code) -- in any order.

これらのテーブルは 1:1 ですか? もしそうなら、なぜCOUNTを行うためにJOINを行うのですか?

提供してくださいSHOW CREATE TABLE。(データ型の違いがある場合、これは大きな問題になる可能性があります。)

実際のものを提供してくださいSELECT

どのくらいのRAMを持っていますか? 提供してくださいSHOW VARIABLES LIKE '%buffer%';

于 2015-12-28T22:03:06.390 に答える