私はこれが何度も議論されたことを知っています.私は私の特定のケースについてアドバイスを得ることを望んでいます.
私はソーシャルネットワーキングサイトに取り組んでいます.理論的には、mysqlデータベースに何十億もの写真を記録できるはずです.
レコードの一意の BIGINT ID を「oij43oj54oi52j43i」のような文字列 ID に置き換えるのは良い考えかどうか疑問に思っていました。
利点は次のとおりです。
挿入時に待機してmysqlから次の行番号を取得する必要があるBIGINT IDとは異なり、複数のサーバーに分散された複数のデータベースに写真レコードを挿入できました。
/avatars/oij43oj54oi52j43i.jpg の場合、/avatars/120.jpg のように整数を入力して、ユーザーが画像にランダムにアクセスできる可能性は低くなります。この 2 番目の部分は URL の書き換えでも実行できることはわかっていますが、CPU/メモリをいくらか使用します。
「photo_comments」などの他のテーブルも、写真を参照するときに同じ文字列 ID を使用できます。
これらを念頭に置いて、文字列 ID を使用するのは悪い考えですか? 特に私が言及した最初の利点について、それは有効なポイント/利点/プラクティスですか?
ありがとうございました。
編集: 文字列が一意であることを確認するには、ユーザー ID を文字列に追加します。タイムスタンプ マイクロ秒を使用する php uniqid()を使用することもできます。