クエリに回答するにはテーブル全体をロードする必要があり、4つの要素の並べ替えは安価であるため、クエリオプティマイザはインデックスに触れないようにしている可能性があります。それでも大きなテーブルでも発生しますか?
MySQLはインデックスにvarcharの最初の768バイト程度を超えて含まないため、varchar(3000)列をカバーインデックスにすることはできないことに注意してください。
クエリでインデックスのみを読み取る場合は、インデックスにSELECT
のすべての列が含まれている必要があります その中でのために。 innodbでは、textcolを十分に小さくすると、2列のテーブルで機能し始めるはずです。 MyISAMでは、CREATE INDEX textcolindex ON test (textcol,id);
のように、自分で主キー列を含める必要があります。