同時実行性の高い Web サイトの自動インクリメント主キーの重複を防ぐにはどうすればよいですか?
Jul 06, 2016 pm 01:52 PM
例えば、Sina WeiboのWeibo ID、登録ユーザーのユーザーuid、Baidu Tiebaの投稿番号tidなど。これらはすべて、公開時間に応じて増加する関係を示していることを観察しましたが、気になるのは、このような同時実行性の高い Web サイトでは通常、データベースの前にキャッシュやメッセージ キューなどのミドルウェアが必要です。したがって、複数のデータベースが最終的に複数のデータベースに挿入されるときに、主キーが重複しないようにするにはどうすればよいですか。それらの間は自動的に増加しますか?
そして、衝突確率の低いランダム ID 生成アルゴリズムが数多く存在しますが、これらのアルゴリズムはなぜ同時実行性の高い Web サイトで使用されないのでしょうか?効率のせいでしょうか?
返信内容:
例えば、Sina WeiboのWeibo ID、登録ユーザーのユーザーuid、Baidu Tiebaの投稿番号tidなど。これらはすべて、公開時間に応じて増加する関係を示していることを観察しましたが、気になるのは、このような同時実行性の高い Web サイトでは通常、データベースの前にキャッシュやメッセージ キューなどのミドルウェアが必要です。したがって、複数のデータベースが最終的に複数のデータベースに挿入されるときに、主キーが重複しないようにするにはどうすればよいですか。それらの間は自動的に増加しますか?
そして、衝突確率の低いランダム ID 生成アルゴリズムが数多く存在しますが、これらのアルゴリズムはなぜ同時実行性の高い Web サイトで使用されないのでしょうか?効率のせいでしょうか?
人気の科学IDジェネレーターまたはグローバル番号ジェネレーター知識記事をお勧めします
http://weibo.com/p/1001603800404851831206
それでは、Twitter が社内で SnowFlake という PHP で実装した ID ジェネレーターをお勧めします
https://github.com/sschiau/Particle.php
くだらない話を始める準備ができています。 。 。 。
システムは小規模から大規模までゼロから始まります。
最初の頃はお金も時間も限られていたので、公式にサポートされているものや、シンプルでメンテナンスが簡単なものを自然と使っていました。その後の転換コストが高く、リスクが高く、リターンが低い場合、誰がこれらすべてに対処するのでしょうか?
第 2 に、同時実行性が高いため、それらのほとんどは同時に書き込まれません。
最後に、あなたが言及した状況に遭遇した場合でも、番号送信者を設定して、自己増加IDを送信することができます。さて、ここで問題となるのは、分散ディスパッチャをどのように設定するかです。 。 。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
