Jika Anda memiliki 1 juta file untuk dipahami, Anda akan (setahu saya) menelusuri setiap file dengan ekspresi reguler.
Untuk semua maksud dan tujuan, pada akhirnya Anda akan melakukan hal yang sama pada baris tabel jika Anda melakukan kueri massal menggunakan operator LIKE atau ekspresi reguler.
Pengalaman saya sendiri dengan grep adalah bahwa saya jarang mencari sesuatu yang tidak mengandung setidaknya satu kata lengkap, jadi Anda mungkin dapat memanfaatkan database untuk mengurangi kumpulan yang Anda cari.
MySQL memiliki fitur pencarian teks lengkap asli, tetapi saya tidak menyarankan karena itu berarti Anda tidak menggunakan InnoDB.
Anda dapat membaca tentang itu dari Postgres di sini:
http://www.postgresql.org/docs/current/static/textsearch .html
Setelah membuat indeks pada kolom tsvector, Anda kemudian dapat melakukan "grep" Anda dalam dua langkah, satu untuk segera menemukan baris yang mungkin secara samar memenuhi syarat, diikuti oleh yang lain pada kriteria Anda yang sebenarnya:
select * from docs where tsvcol @@ :tsquery and (regexp at will);
Itu akan jauh lebih cepat daripada yang bisa dilakukan grep.