データベースから任意の情報を選択するクエリがあります。この情報は、商品価格を定義するために使用します。問題は、クエリの実行に3秒かかることです。今回は多くの記事で掛け算する必要があります。
このクエリを最適化するにはどうすればよいですか?アーティコリテーブルには、16330行あります。
これはクエリです
SELECT ts_scon, AI_CODICIVA,
AI_LIS_EURO1, AI_LIS_EURO2,
AI_LIS_EURO3, AI_LIS_EURO4,
AI_LIS_EURO5, cl_tipocl
FROM tabscon, articoli, clienti
WHERE ts_azienda = 'SRL'
AND AI_AZIENDA = 'SRL'
AND AI_CODIREST = $cod_articolo
AND cl_azienda = 'SRL'
AND cl_codice = $cod_cliente
AND ts_codice IN (
SELECT cl_tabsco
FROM clienti
WHERE cl_codice = $cod_cliente
AND CL_AZIENDA = 'SRL')
AND ts_grusco IN (
SELECT ai_grupscon
FROM articoli
WHERE ai_codirest = $cod_articolo
AND AI_AZIENDA = 'SRL')
これはEXPLAINの結果です。結果は、インデックスがない場合とインデックスがある場合で同じです。
id | select_type | table | type |possible_keys | key | key_len | ref | rows | Extra 1 | PRIMARY | clienti | const | PRIMARY | PRIMARY | 25 | const、const | 1
1 | PRIMARY | tabscon | ref | PRIMARY、azie_grsco_codice | PRIMARY | 15 | const |505|使用場所1|PRIMARY | articoli | ALL | PRIMARY、barcodeidx、StatoAidx、Statoidx | NULL | NULL | NULL |16333|使用場所; 結合バッファーの使用3|DEPENDENT SUBQUERY | articoli | ref | PRIMARY、barcodeidx、StatoAidx、Statoidx StatoAidx | 15 | const | 7311 | where 2 | DEPENDENT | SUBQUERY | clienti | const|PRIMARYの使用
注文が少なかったことをお詫びしますが、まだ実用的ではありません。