私は、ユーザーが単語を入力して定義を取得できる英語のWeb辞書を作成しています。私はしばらくこれについて考えましたが、データは100%静的であり、一度に1つの単語しか取得できなかったため、MySQLを使用して定義を格納するのではなく、データベースシステムとしてファイルシステム(ext3)を使用する方が適切でした。MySQLに接続する必要があり、それ自体が非常に遅い操作であることを考えると、オーバーヘッドが少なくなると思いました。
私の恐れは、もし私のシステムが例えば500ワード/秒の検索で攻撃されたとしても、データベースとしてファイルシステムを使用したほうがよいのではないかということです。または、MySQLが内部で行っている可能性があることとは対照的に、ファイルシステムの読み取りが増えるとパフォーマンスが低下しますか?
現在、階層は単語の最初の文字、2番目の文字、3番目の文字で分割されています。したがって、「水」の定義を検索する場合、スクリプト(PHP)は「../dict/w/a/t/water.word」から読み取ろうとします(問題のある文字の単語をクリーンアップした後、小文字)
私はこれで正しい方向に向かっていますか、それともより速い解決策がありますか(memcachedのようなものを使用してメモリに定義を保存することを数えません)?ディレクトリに保存されるファイルの量はパフォーマンスに影響しますか?ディレクトリに保存する必要のあるファイル数の大まかなベンチマークは何ですか?