現在、それぞれ約5〜6列の13のテーブルがあります。13 個のテーブルのうち、4 個のテーブルには 200,000 (20 万) を超える行があり、5 ~ 6 列に varchar(1000) 以上の値が含まれています。残りの 10 テーブルには、それぞれ varchar(1000) 以上の値を持つ 5 ~ 6 列の約 10000 行があります。3 つ以上のテーブルのデータを含むクエリを作成し、結果が 1000 行と 5 列になると予想される場合、クエリの実行にかなりの時間がかかります (30 分~2 時間)。
約 12GB の RAM と x86_64 x86_64 x86_64 GNU/Linux のシステムがあります。
クエリの実行時間を大幅に短縮する方法は何ですか?
select a.d_id,
a.d_n,
a.t_id, a.act,
a.pm,
b.d_t,
b.d_d,
b.pm,
b.mec_of_act,
b.d_g,
b.d_c,
c.n_id,
c.s_name,
c.s_status,
c.s_p,
c.dis
from d_tar a,
d_char b,
ct c,
c_int d,
d_s e,
d_b f
where a.d_id=b.d_id
&& a.d_id=e.d_id
&& t_id='847'
&& a.d_id=f.d_id
&& d.n_id=c.n_id
&& (d.in_name=b.d_n
or d.in_name=e.snym
or d.in_name=f.b_name);