0

MySQL クエリ (ver 5.1.61)

SELECT alerts.*,
       devices.user_id
  FROM alerts
       left JOIN devices
          ON alerts.device_id = devices.id
 WHERE    devices.name = 'myval'

「alerts.device_id」にインデックスがあります。Explain の MySQL はインデックスを使用しません。タイプは「ALL」で、行はテーブル内の全行数です。

このインデックスを使用しない理由がわかりません。私は何が欠けていますか?

ありがとう!

4

1 に答える 1

1

select句でもwhere句でも使用していないため、インデックスは選択されません。

にインデックスを追加する必要がありますdevice.name

次のように、主キーの場合はインデックスを、0より大きい場合はその値をエンジンに強制的に考慮させることができます。

SELECT alerts.*,
       devices.user_id
  FROM alerts
       left JOIN devices
          ON alerts.device_id = devices.id
 WHERE    devices.name = 'myval' and alerts.deviceid>0
于 2012-12-05T13:06:32.420 に答える