2017-12-14 12 views
0

数値オートインクリメントのプライマリキーとUUIDのメリットを検討中です。私はジオロケーションベースのクエリを実行するため、PostgresとPostgisをバックエンドに使用します。
パフォーマンスは重要なポイントです。これはジオロケーションベースのライブアプリを意図しているからです。そうでなければ、それほど気にする必要はありません。自動増分のスケーリング

私の個人的な決定はほぼ完了しました。自動インクリメントは、実行時の外部キーと結合操作、高速検索、および最初のデータベース領域に関する低コストで最も効果的です。バックエンドに塩漬けのhashidsを使用して、クライアントに自動インクリメントの主キーを難読化したいので、このために自分のテーブルに二次固有のキーは必要ありません。

ただし、分散データベースシステムで自動インクリメントのプライマリキーを使用することについては、常に警告を受けています。
分散システムが必要ですか?最も正直な答えは:私は今、私はどうすればわからないのですか?アプリがうまくいかない場合、その答えはおそらくないでしょう。もしそうなら、おそらくそれはそうです。
しかし、私はそれを必要とし、私は普遍的なキーを使用していないことが判明するまでには、それは遅すぎます。重複するキーに関連する問題に対して、多くの記事が警告しています。

私の質問です。パフォーマンスの向上とスペースの削減のために自動インクリメントキーを使用してリスクを実行し、自動インクリメントを使用して分散システムに時間をかけて拡張するのはどれほどの苦痛でしょうか?

私の現在の仕事のメンターは、時期尚早の最適化は悪いと警告しましたが、同時にあなたは素朴ではないと警告しました。私のための細い線ここ、私は何をすべきですか?

編集:私はMySQLにタグをつけただけでなく、同じことが当てはまると思います。

答えて

0

UUIDを使用するのが快適で、今後の自動インクリメントの問題があると思われる場合は、それを使用する必要があります。パフォーマンスへの影響はごくわずかです。他のデータベース設計上の問題のために、より多くのパフォーマンスを失うでしょう。確かに、UUIDを使っているからではありません。

高速検索では、大きなテーブルを分割するか、クラスタリングするだけです。

関連する問題