| 社長ブログ | 開発実績 | 勉強会 | 会社概要 |
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検索の方が速いのかな、と思っていただけに興味深い結果となりました。
--
2006年08月14日