目次
返信内容:
ホームページ バックエンド開発 PHPチュートリアル 同時実行性の高い Web サイトの自動インクリメント主キーの重複を防ぐにはどうすればよいですか?

同時実行性の高い Web サイトの自動インクリメント主キーの重複を防ぐにはどうすればよいですか?

Jul 06, 2016 pm 01:52 PM
php sql データベースの同期 データベース開発 データベース設計

例えば、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を送信することができます。さて、ここで問題となるのは、分散ディスパッチャをどのように設定するかです。 。 。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

See all articles