あなたの質問は想像力に大きく委ねられています。
1つには、インデックスの目的が重複を避けるための主キーとして機能することであると想定する必要があります。 「申し訳ありませんが、1800文字のデータ入力に誤りがあります。一致しません。もう一度やり直してください」とユーザーに言うアプリケーションを開発することはありません。
別のこととして、あなたのこれらのURLには潜在的に多くのCGIパラメータ(?param =val&param =val&param =val)が含まれていると想定する必要があります。
これらの仮定が正しい場合は、次のことができます。
-
必要に応じて、varcharとしてURL列を長くします。
-
テーブルにSHA-1ハッシュ列を追加します。 SHA-1ハッシュは、40文字(16桁)の文字列で構成されます。
-
その列を主キーにします。
-
テーブルにデータを入れるときは、mySQLSHA1関数を使用してハッシュ値を計算します。
-
INSERT ... ON DUPLICATE KEY UPDATE mySQLコマンドを使用して、データベースに行を追加します。
これにより、うまくスケールアップする方法で混乱することなく、重複するURLをデータベースから除外できます。
http://dev.mysql.com/doc /refman/5.1/en/insert-on-duplicate.html