Perlすれより誘導されたため、こちらで質問させていただきます。

掲示板等の投稿を行うシステムを作るときのことなのですが、投稿ログに順次
書き込みを行っていくのではなく、投稿内容に応じてログへの記述位置が違う
場合、
一度ログを全て読み込み、ファイルを閉じ、書き込み位置をスキャンした後に
書き込み用に開いて、当該個所に追記するというのがいいのでしょうか?
それとも、読み込んでスキャンしている最中も開きっぱなしで書き込みが終わっ
てから閉じるものなのでしょうか?

また、検索の際も
検索を行う該当箇所だけ開き、マッチした記事のID等をひろってから、再度開
きなおしてIDから記事全体を取得するのか、開きっぱなしでマッチした記事を
拾ってから閉じるのでしょうか?

前者だと、書き込みや検索が多い際にファイルへアクセスするプロセスが待つ
時間が短くなると思うのですが、2度開くのでファイルを開くのとメモリに読み
込む時間がかかってしまうと考えています。
後者であれば、ファイルを開くのと読み込むのが一度なのでその時間が短く済
みますが、スキャンしている時間もファイルをロックしているので、プロセス
が待つ時間が長くなってしまうと考えています。

私の考えも含めて間違っている個所があれば、ご指摘いただければと思います。