MySQLのドキュメントで明確な参照を見つけることはできませんが、インデックス構造のため、正規表現の一致ではインデックスルックアップを使用できません。
全表スキャンの代わりに正規表現を使用してインデックスをスキャンする場合がありますが、正規表現検索はほぼ全表スキャンと同等です。
正規表現が定数文字列で始まる場合は、クエリを次のように構成することをお勧めします。
SELECT * FROM TableA WHERE field LIKE 'tr%' AND field RLIKE 'tr[uae].*'
LIKEからインデックスのヘルプを取得します。これは、文字列の先頭から一致した場合に、インデックスを有利に使用できます。
編集:選択はかなり単純で、文字列の先頭から一致するため、LIKEを使用してそれらを機能させることができます。これにより、インデックスがうまく利用されます。
SELECT * FROM TableA WHERE field1='2012' OR field1 LIKE '2012/%'
SELECT * FROM TableA WHERE field1='2012/10' OR field1 LIKE '2012/10/%'
SELECT * FROM TableA WHERE field1='2012/10/3'
比較を2つに分割する理由は、両方のケースをカバーするLIKEだけ2012/1
と一致する検索を回避するためです2012/10
(つまりLIKE '2012/1%'
)。