3

私は、240 万件のエントリのデータベースを備えた Web サイトを持っています。ここで、mod_rewrite を使用して、example.com/this-is-a-beautiful-url のような明確な URL を生成したいと考えています。どの URL がどのページに属しているかを認識するために、Web サイトのコンテンツを参照する URL テーブルを作成したいと考えています。「this-url-example」のように、ID 123 の投稿に属しています。現在、2 人の友人がこのテーブルを作成する 2 つの異なる方法を教えてくれていますが、どちらが最適かわかりません。

  1. アドバイス: 「URL の MD5 ハッシュを作成し、インデックス付きのバイナリ フィールドに保存します」。
  2. アドバイス: 「単純に URL をプレーン テキストで保存し、それにインデックスを付けます」。

より高速な選択クエリを提供する方法はどれですか? 他にアドバイスはありますか?ありがとう!

4

3 に答える 3

2

妥協して、URL を sitename.com/12345/clean-url-format としてください

読み取り可能な URL に両方のキーワードがあり、高速化のために主キーによって行をフェッチするために使用できる識別されたものがあります。

テキスト部分のない URL を、テキスト部分のある正規バージョンにリダイレクトすることは合理的です。

于 2012-10-14T21:40:21.950 に答える
2

MD5 ハッシュは、データ比較のために設計されました。つまり、パスワードが有効であること、またはファイルが変更されていないことを確認します。

(検索エンジンの最適化のために) URL を変更できるようにする予定がある場合は、プレーン テキストを使用します。

また、(HTACCESS 内に) Mod Rewrite Commands ファイルを作成する場合は、その URL を特定のページにリンクできるようにプレーン テキストにする必要があります。

于 2012-10-14T21:53:20.833 に答える
0

mysql も md5 ハッシュも使用しません。代わりに、 dbmleveldbなどのキーと値のストアを使用してください。Apachemod_rewriteの. _ タイプはsdbmgdbmndbmまたはdb( Berkeley DB ) で、apache にはデータベースを作成するプログラムhttxt2dbmが含まれています。MySQL を使用したい場合は、RewriteMap で dbd オプションとmod_dbdを使用して同様に実行できます。パフォーマンスに関しては、MySQL でハッシュ インデックスを使用することは Berkley DB と似ているはずです。

于 2015-01-29T20:25:06.713 に答える