データ量が増加し続けるにつれて、従来のスタンドアロン データベースではビジネス ニーズを満たすことができなくなり、データ シャーディングが効果的なソリューションになりました。 MongoDB は、分散展開をサポートし、データ シャーディングのための完全なソリューションを提供する高性能ドキュメント データベースです。この記事では、PHP 開発におけるデータシャーディングに MongoDB を使用する方法を紹介します。
1. MongoDB データ シャーディングの概要
MongoDB のシャーディング メカニズムは、収集データを複数のマシンに均等に分散して保存し、データの読み取りと書き込み操作を実現するためのシャード キー ルーティング メカニズムを提供します。 MongoDB のシャーディング メカニズムには、ルーティング ノード、構成ノード、シャーディング ノードの 3 種類のノードが含まれています。
1. ルーティング ノード: クライアント リクエストのルーティングと、対応するシャーディング ノードへのリクエストの転送を担当します。
2. 構成ノード: シャード ノードのアドレス、シャーディング キー範囲、その他の情報など、シャード クラスターのメタデータ情報を維持する責任を負います。
3. シャーディング ノード: 特定のデータを保存し、シャーディング キーの範囲に従ってデータ ストレージ領域を分割する役割を果たします。
2. データ シャーディングに MongoDB を使用する
PHP 開発でデータ シャーディングに MongoDB を使用するには、次の手順を実行する必要があります:
1. MongoDB 拡張機能をインストールします
PHP 開発で MongoDB を使用するには、MongoDB 拡張機能をインストールする必要があります。 Linux システムでは、次のコマンドを使用してインストールできます:
pecl install mongodb
Windows システムでは、php.ini ファイルに次の構成を追加できます:
extension=php_mongodb.dll
2。シャードクラスター
シャードクラスターを構成する前に、MongoDB サービスがインストールされ、mongod プロセスが開始されていることを確認する必要があります。 MongoDB サービス起動コマンド:
mongod --config /usr/local/etc/mongod.conf
シャード クラスターの構成には次の手順が必要です:
(1) ルーティング ノードの構成
MongoDB には、ルーティング ノードを開始するための mongos コマンドが用意されています。コマンド:
mongos --config /usr/local/etc/mongos.conf
(2) 構成ノードの構成
クラスター内に少なくとも 1 つの構成ノードを構成します。開始するには、次のコマンドを使用します:
mongod --configsvr --dbpath /data/xxx/configdb --port 27019
(3)シャーディング ノードの構成
クラスター内に少なくとも 1 つのシャード ノードを構成し、コマンドを開始します:
mongod --shardsvr --replSet rs0 --dbpath /data/xxx/data/db --port 27018
(4) シャードの追加
mongos が提供するコマンドを使用してシャードを追加します
sh.addShard( "rs0/localhost:27018" )
このうち、rs0 はレプリカ セット名、localhost:27018 はシャード ノードのアドレスとポート番号です。
3. シャード コレクションを作成する
シャード クラスターにコレクションを作成するには、次のステートメントを使用する必要があります:
$collection = $db->createCollection("collectionName", array('capped' => true, 'size' => 10000, 'max' => 100));
ここで、collectionName はコレクション名、配列はコレクションの属性。 capped は固定サイズのコレクションを使用するかどうかを示し、size はコレクションのサイズ、max はドキュメント レコードの数です。
4. シャーディング キーを設定します
コレクション内の列をシャーディング キーとして選択し、ステートメントを使用して設定します:
$collection->ensureIndex(array('field' => 1), array('unique' => true, 'background' => true));
その中で、field はフィールドです。シャーディングキーとして使用される列名。
5. データ操作の実行
シャード クラスターでデータ操作を実行するコードは次のとおりです:
$collection->insert(array('field1' => 'value1', 'field2' => 'value2', 'field3' => 'value3'));
読み取りおよび書き込み操作を実行するときは、 MongoDB Rules によって提供されるルーティングにより、データのバランスのとれた分散と効率的なアクセスが実現されます。
3. 概要
MongoDB のデータ シャーディング メカニズムは、大規模なデータ ストレージに効果的なソリューションを提供し、データの高速アクセスと高可用性を実現できます。 PHP 開発では、データ シャーディングに MongoDB を使用することは、単純な構成とコードによって実現できます。この記事の導入を通じて、読者は PHP 開発におけるデータ シャーディングに MongoDB を使用する方法をすでに理解できたと思います。
以上がPHP 開発でのデータシャーディングに MongoDB を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。