like検索とregexp検索どっちが速い? [2006/08/14]

MySQLにおいて、like検索とregexp検索どっちが速いのか?
という素朴な疑問を抱き、100万件のテストデータを作って軽く試してみました。

■マシン
OS:WindowsXP Pro
CPU:1.1GHz
メモリ:512MB
MySQL:4.0.18

■テストデータ
100万件

■テストSQLと結果
(1)
select count(*) from update_ping
where blog_title REGEXP '.ジダン|.フランス'
or entry_title REGEXP '.ジダン|.フランス'
or body REGEXP '.ジダン|.フランス';

→ 30秒前後

(2)
select count(*) from update_ping
where blog_title like '%ジダン%' or '%フランス%'
or entry_title like '%ジダン%' or '%フランス%'
or body like '%ジダン%' or '%フランス%';

→ 6秒前後

このケースだとlike検索の方が圧倒的に速い結果が出ました。
感覚的には正規表現を使ったregexp検索の方が速いのかな、と思っていただけに興味深い結果となりました。