-1

mysql からデータを取得するためにサーバーと通信する Java デスクトップ アプリを作成します。

現在、サーバー上のこのクエリ:

select
    ec_transactions.added,
    ec_transactions.merchant_id,
    ---
    ec_customer_billing_details.card_payment_method,
    ---
    ec_customer_details.first_name,
    ---
    ec_customer_card_details.card_holde r_name,
    ---
from
    ec_transactions,
    ec_customer_billing_details,
    ec_customer_details,
    ec_customer_card_details  
where ec_transactions.transactions_id =  tranId 
  AND ec_customer_billing_details.customer_id =  custId 
  AND ec_customer_details.customer_id   =  custId  
  AND ec_customer_card_details.customer_id =  custId 

遅すぎる。 どうすればもっと速くできますか?

4

2 に答える 2

2

説明計画を使用してこれを確認し、テーブルに設定されていない場合はインデックスを設定できます。また、クエリを最適化することもできます。ステートメントの最適化に関する MySql ドキュメントを参照してください。

于 2013-02-05T07:51:11.353 に答える
0

テーブルに適切なインデックスを付けると、クエリのパフォーマンスが向上します。列が主キー外部キー、または一意として設定されている場合は、サーバーが自動的に作成するため、インデックスを手動で作成する必要はありません。ただし、テーブルのインデックスが多すぎると、 、 、 などの DML ステートメントのパフォーマンスが低下することに注意しINSERTUPDATEくださいDELETE

于 2013-02-05T08:17:06.443 に答える