2

以下のクエリはインデックスを使用せず、説明プランのタイプは「ALL」です

拡張された説明

SELECT 
  GROUP_CONCAT(CONCAT(fname,' ',lname)) 
FROM employee WHERE FIND_IN_SET(emp_id,'111582,111624')>0;

インデックスを使用するためにクエリを変更する方法はありますか。

説明計画の出力:

 id : 1
 select_type :SIMPLE
 table  : employee 
 type   : ALL
 possible_keys  : {null}
 key    : {null}
 key_len    : {null}
 ref    : {null}
 rows  : 546
 filtered : 100
 Extra: Using where

インデックスを使用するようにクエリを改善することをお勧めします。

前もって感謝します、

4

2 に答える 2

1

FIND_IN_SETは文字列関数であり、(ほとんどの場合) テーブル全体のスキャンが行われます...

使用する:

WHERE emp_id IN (111582,111624)
于 2013-04-25T07:46:48.573 に答える