Table des matières
Solution
Pourquoi mon environnement PHP nécessite-t-il un support MongoDB? À quoi sert cette chose?
Les pièges et les solutions rencontrées lors de l'installation des pilotes MongoDB PHP
Comment connecter MongoDB et effectuer des opérations de base en code PHP?
Des choses sur l'optimisation des performances et le déploiement de l'environnement de production
Maison développement back-end tutoriel php Comment configurer la prise en charge de MongoDB pour les paramètres de l'environnement PHP pour la connexion PHP à la base de données Mongo

Comment configurer la prise en charge de MongoDB pour les paramètres de l'environnement PHP pour la connexion PHP à la base de données Mongo

Jul 23, 2025 pm 06:54 PM
mysql php centos composer php7 windows apache nginx mongodb

Pour configurer l'environnement PHP pour prendre en charge MongoDB, l'étape de base consiste à installer et à activer le pilote PHP de MongoDB pour permettre à l'application PHP de communiquer avec la base de données MongoDB. 1. Installez le pilote MongoDB PHP, il est recommandé d'utiliser PECL pour l'installer. S'il n'y a pas de PECL, vous devez d'abord installer le package de développement PHP et des outils de compilation associés; 2. Modifiez le fichier php.ini et ajoutez une extension = mongodb.so (ou .dll) pour activer l'extension; 3. Redémarrez le serveur Web ou le service PHP-FPM pour rendre la configuration à prendre effet; 4. Vérifiez que l'extension est chargée avec succès via phpinfo () ou php -m. Les problèmes communs incluent les commandes PECL manquantes, les erreurs de compilation, la configuration PHP.ini inefficace et le non-respect. Les dépendances, les chemins, les configurations et les problèmes de réseau doivent être vérifiés un par un. Une fois la configuration terminée, les connexions de la base de données et les opérations de base CRUD peuvent être implémentées via la classe MongoDB \ Client, et les index, les pools de connexion, la séparation de lecture et d'écriture et le déploiement des fragments peuvent être optimisés dans l'environnement de production pour améliorer les performances et la stabilité.

Comment configurer la prise en charge de MongoDB pour les paramètres de l'environnement PHP pour la connexion PHP à la base de données Mongo

Configurez l'environnement PHP pour prendre en charge MongoDB. Le noyau est d'installer et d'activer le pilote PHP de MongoDB afin que votre application PHP puisse "parler" la langue MongoDB. Ce n'est pas aussi intuitif que la configuration d'un serveur Web simple. Il s'agit de compiler et de charger des extensions de PHP, mais une fois terminé, PHP peut se connecter de manière transparente avec la puissance puissante des bases de données NoSQL.

Comment configurer la prise en charge de MongoDB pour les paramètres de l'environnement PHP pour la connexion PHP à la base de données Mongo

Solution

Il y a quelques choses que vous devez faire pour faire de votre environnement PHP MongoDB. Cela implique généralement l'installation du pilote PHP pour MongoDB, puis de dire à PHP de le charger.

  1. Installation du pilote PHP MongoDB : Il s'agit de l'étape la plus critique. Il est recommandé d'utiliser PECL pour l'installation car il est sans souci.

    Comment configurer la prise en charge de MongoDB pour les paramètres de l'environnement PHP pour la connexion PHP à la base de données Mongo
     PECL Installer MongoDB

    Si votre système n'a pas de PECL ou que l'installation PECL échoue (comme des outils manquants tels que phpize et php-config ), vous devrez peut-être d'abord installer le package de développement PHP: pour Debian / Ubuntu: sudo apt-get install php-dev pour CentOS / RHEL: sudo yum install php-devel Parfois, vous pouvez également entendre le problème make autoconf de gcc eux aussi. Si l'installation de PECL n'est toujours pas fluide, vous pouvez télécharger manuellement la version correspondante du package .tgz , la décompresser et entrer le répertoire, et exécuter phpize , ./configure , make , make install . Ce processus vous oblige à comprendre l'environnement de compilation du système.

  2. Configurez le fichier php.ini : Une fois le pilote installé avec succès, PECL vous dira où il met mongodb.so (ou mongodb.dll sur Windows). Vous devez modifier votre fichier php.ini et ajouter une ligne pour activer cette extension. Trouvez votre fichier php.ini (vous pouvez trouver Loaded Configuration File via phpinfo() ). À la fin du fichier ou dans la section Dynamic Extensions , ajoutez:

    Comment configurer la prise en charge de MongoDB pour les paramètres de l'environnement PHP pour la connexion PHP à la base de données Mongo
     Extension = MongoDB.SO

    (L'utilisateur de Windows peut être extension=php_mongodb.dll )

  3. Redémarrez le serveur Web ou PHP-FPM : Pour que PHP charge de nouvelles configurations, vous devez redémarrer votre serveur Web (tel qu'Apache, Nginx) ou le service PHP-FPM. Par exemple: pour Apache: sudo service apache2 restart ou sudo systemctl restart apache2 pour NGINX PHP-FPM: sudo service nginx restart et sudo service php-fpm restart (ou php7.x-fpm , etc.)

  4. Vérifiez l'installation : créez un fichier PHP simple avec le contenu de <?php phpinfo(); ?> , accédez-y dans le navigateur. Recherchez "MongoDB". Si vous pouvez voir les informations de configuration liées à MongoDB, cela signifie que l'installation a réussi. Vous pouvez également essayer d'exécuter php -m | grep mongodb sur la ligne de commande. Si mongodb est sortie, cela signifie que l'environnement CLI se charge.

Pourquoi mon environnement PHP nécessite-t-il un support MongoDB? À quoi sert cette chose?

Cette question est bonne. Après tout, la plupart d'entre nous provenaient de bases de données relationnelles telles que MySQL et PostgreSQL. Soudain, un MongoDB, une base de données NoSQL, quelle valeur différente peut-elle apporter aux applications PHP? À mon avis, ce n'est pas aussi simple qu'un "choix de plus", cela ressemble plus à un changement dans l'état d'esprit.

Tout d'abord, la sensation la plus intuitive est la flexibilité de la structure des données . Les bases de données relationnelles vous obligent à prédéfinir des structures de table strictes, des types de champs, des longueurs et des contraintes prédéfinis, et vous ne pouvez pas vous tromper du tout. Cependant, dans le développement réel, les modifications de la demande sont la norme et la structure des données peut être ajustée à tout moment. MongoDB utilise le stockage de documents BSON (binaire JSON), ce qui signifie que vous pouvez stocker des documents de n'importe quelle structure, les champs peuvent être augmentés dynamiquement et diminués, et les données imbriquées sont également sans stress. MongoDB est une aubaine pour les projets qui nécessitent une itération rapide et un changement dans les structures de données, telles que les systèmes de gestion de contenu, les journaux de comportement des utilisateurs, les attributs de produits de commerce électronique, etc. Vous n'avez pas besoin de modifier la structure du tableau ou d'exécuter le script de migration pour ajouter un nouveau champ, il suffit de l'enregistrer directement, ce qui améliore considérablement l'efficacité de développement.

Deuxièmement, il est de la capacité de se développer horizontalement . À mesure que l'explosion de l'utilisateur de votre application se développe et que le volume de données gonfle, l'extension verticale des bases de données relationnelles (améliorer les serveurs plus fortes) atteindra rapidement le plafond, tandis que l'expansion horizontale (ajouter plus de serveurs) est beaucoup plus complexe. MongoDB est naturellement conçu pour la distribution. Grâce au mécanisme de rupture, les données peuvent être facilement dispersées sur plusieurs serveurs, atteignant une échelle horizontale, traitant ainsi des données massives et des demandes simultanées élevées. Bien que les applications PHP elles-mêmes doivent également envisager le déploiement distribué, le support au niveau de la base de données rend sans aucun doute l'ensemble du système plus évolutif.

De plus, la lecture et l'écriture haute performance . MongoDB fonctionne très bien dans certains scénarios, en particulier lors de la lecture et de l'écriture de données non structurées ou semi-structurées. Il prend en charge de riches opérations de requête, y compris les requêtes de document imbriquées, les requêtes de tableau, les requêtes géospatiales, etc. Celles-ci peuvent nécessiter des opérations de jointure complexes ou des extensions supplémentaires à implémenter dans des bases de données relationnelles. Bien sûr, cela ne signifie pas que MongoDB est plus rapide que les bases de données relationnelles dans tous les scénarios, il a ses propres meilleurs scénarios applicables.

Ainsi, lorsque votre projet PHP est confronté à une structure de données incertaine, nécessite une itération rapide, peut faire face à des données massives et à des défis de concurrence élevés à l'avenir, ou simplement vouloir essayer un nouveau paradigme de stockage de données, MongoDB est une option à considérer. Il vous permet d'avoir une plus grande liberté dans le stockage des données et offre également plus de possibilités d'expansion des applications.

Les pièges et les solutions rencontrées lors de l'installation des pilotes MongoDB PHP

Je me souviens de la première fois que j'ai essayé de configurer des pilotes MongoDB pour PHP, c'était vraiment "indicible". Les tutoriels en ligne sont les mêmes, mais quand il s'agit de le faire vous-même, toutes sortes d'erreurs étranges apparaîtront. J'ai marché sur ces pièges et vous pouvez aussi les rencontrer, mais ne paniquez pas, la plupart d'entre eux ont des solutions.

Pit 1: la commande PECL ne peut pas être trouvée ou l'installation a échoué

  • Manifestation du problème : lors de la saisie pecl sur la ligne de commande, il invite command not found , ou pecl install mongodb phpize ou php-config ne peut être trouvé.
  • Raisons profondes : PECL est un gestionnaire de packages pour les extensions de PHP, qui repose sur des outils de développement PHP. Si vous n'avez pas de package de développement PHP ( php-dev ou php-devel ) installé sur votre système, ces outils n'existent naturellement pas.
  • Solution :
    • Installez le package de développement PHP :
      • Ubuntu / Debian: sudo apt update && sudo apt install php-dev (ou versions spécifiques telles que php7.4-dev )
      • CENTOS / RHEL: sudo yum install php-devel (ou php74-php-devel , etc.)
    • Vérifier le chemin : assurez-vous que les répertoires où se trouvent phpize et php-config sont dans les variables d'environnement de votre chemin système. Habituellement, il sera traité automatiquement après l'installation de php-dev .
    • Cache PECL clair : Parfois, il y a un problème avec le cache PECL, vous pouvez essayer pecl clear-cache .

PIT 2: Erreur de compilation ( configure et make une erreur de scène)

  • Manifestation du problème : Pendant le processus pecl install mongodb , ou pendant la compilation manuelle, les mots configure: error: ... ou make: *** ... Error 1 apparaît.
  • Raisons profondes : cela est généralement causé par le manque de dépendances compilées, de compilateurs C / C ou d'outils connexes. Le pilote MongoDB PHP est écrit en langage C et nécessite que ces outils se compilent en fichiers .so .
  • Solution :
    • Installez l'outil de compilation :
      • Ubuntu / Debian: sudo apt install build-essential autoconf libssl-dev
      • CENTOS / RHEL: sudo yum install gcc make autoconf openssl-devel
    • Vérifiez la compatibilité de la version PHP : assurez-vous que la version MongoDB PHP Driver que vous téléchargez est compatible avec votre version PHP. Par exemple, mongodb n'est prise en charge que dans la version PHP 7.0. Des versions PHP trop anciennes peuvent nécessiter l'utilisation d'extensions mongo (obsolètes).
    • Affichez le journal d'erreur : la compilation des messages d'erreur invite généralement la bibliothèque ou le fichier d'en-tête manquant et installer le package dev ou devel correspondant en fonction des invites.

Pit 3: php.ini ne prend pas effet

  • Manifestation du problème : extension=mongodb.so a été ajoutée à php.ini et le service Web a également été redémarré, mais l'extension MongoDB ne peut pas être vue dans phpinfo() .
  • Raisons profondes : vous pouvez avoir modifié le mauvais fichier php.ini , ou PHP ne charge pas le fichier que vous avez modifié correctement.
  • Solution :
    • Confirmez le bon php.ini : exécutez phpinfo() et recherchez Loaded Configuration File . Il s'agit du chemin php.ini que PHP charge réellement. Assurez-vous de modifier ce fichier.
    • Spécialités de PHP-FPM : Si vous utilisez NGINX PHP-FPM, il y a généralement deux php.ini : un pour la CLI (ligne de commande) et un pour le FPM. Assurez-vous de modifier celui que le service FPM utilise. Par exemple, il peut être /etc/php/7.x/fpm/php.ini sur Ubuntu.
    • Chemin de fichier étendu : confirmez que le fichier mongodb.so existe dans le répertoire spécifié par extension_dir . Le chemin vers extension_dir se trouve dans phpinfo() . Sinon, copiez-le manuellement.
    • Redémarrez le service : renforcez-vous que le serveur Web (Apache / Nginx) et les services PHP-FPM ont été complètement redémarrés, plutôt que de simplement recharger.

PIT 4: MongoDB Connection Timeout ou authentification a échoué

  • Manifestation du problème : le code PHP rapporte une erreur lors de la tentative de connexion à MongoDB, tels que No suitable servers found ou Authentication failed .
  • Raisons profondes : ce n'est généralement pas un problème avec le pilote PHP lui-même, mais un problème de connexion réseau, le service MongoDB non démarré, le blocage du pare-feu ou le nom de nom / mot de passe / base de données incorrect.
  • Solution :
    • Vérifiez l'état du service MongoDB : assurez-vous que le service MongoDB est en cours d'exécution. sudo systemctl status mongod .
    • Vérifiez le pare-feu : confirmez que le pare-feu du serveur (comme ufw , firewalld ) permet aux serveurs PHP d'accéder au port par défaut de MongoDB 27017.
    • Vérifiez la configuration de MongoDB : assurez-vous que les paramètres bindIp de MongoDB permettent des connexions externes (si MongoDB et PHP ne sont pas sur la même machine). La valeur par défaut est 127.0.0.1 , seules les connexions locales sont autorisées.
    • Vérifiez la chaîne de connexion et les informations d'identification : Vérifiez soigneusement si la base de données de connexion MongoDB, nom d'utilisateur, mot de passe et authentification dans le code PHP est complètement correcte.

La patience et la méticule sont la clé pour résoudre ces problèmes. La plupart du temps, les messages d'erreur sont le meilleur guide.

Comment connecter MongoDB et effectuer des opérations de base en code PHP?

D'accord, le pilote a été installé et la fosse a été accélérée. Maintenant, je peux enfin écrire du code. Notre objectif ultime est de se connecter à MongoDB avec PHP et d'effectuer des opérations d'addition, de suppression, de modification et de requête (CRUD). Le pilote PHP MongoDB moderne (extension mongodb ) fournit une API très intuitive basée sur le MongoDB\Client .

1. Connectez-vous à MongoDB

La connexion à MongoDB est très simple, il vous suffit d'instancier MongoDB\Client . Il gère automatiquement le pool de connexions, vous n'avez pas besoin de créer une nouvelle connexion pour chaque demande.

 <? Php

exiger «fournisseur / autoload.php»; // Si vous utilisez Composer pour gérer les dépendances, essayez {
    // Connexion par défaut à l&#39;instance MongoDB locale, port 27017
    // Si MongoDB est sur un serveur distant ou a une authentification, vous devez spécifier la chaîne de connexion // Par exemple: &#39;mongodb: // utilisateur: pass @ hôte: port / authdb? Authsource = admin&#39;
    $ client = new MongoDB \ client ("MongoDB: // localhost: 27017");

    // Essayez de se connecter, si la connexion échoue, une exception sera lancée $ client-> listDatabases (); // fait une opération pour vérifier que la connexion écho "se connecte avec succès à MongoDB! \ N";

} catch (mongodb \ driver \ exception \ exception $ e) {
    Echo "La connexion de MongoDB a échoué:". $ e-> getMessage (). "\ n";
    // L&#39;environnement de production doit enregistrer le journal au lieu de sortir directement la sortie d&#39;erreur;
}

// Ensuite, vous pouvez effectuer des opérations de base de données // ...
?>

Ici, vendor/autoload.php est si vous installez la bibliothèque mongodb/mongodb via Composer (c'est le moyen recommandé, car il fournit une couche d'abstraction plus avancée et des conseils de type pratique). Si vous n'installez que les extensions PECL et que vous souhaitez utiliser directement l'API MongoDB\Driver sous-jacente, la ligne require peut être omise, mais MongoDB\Driver en fonctionnement directement sera plus sous-jacent et plus complexe. Il n'est généralement pas recommandé de l'utiliser directement pour le développement des applications. Supposons ici que vous utilisez le compositeur.

2. Sélectionnez la base de données et la collecte

Il n'y a pas de concept de "table" dans MongoDB, mais c'est à la place "Collection", où les données sont stockées dans la collection en tant que document BSON.

 // Supposons que nous ayons une base de données nommée &#39;MyDatabase&#39; $ database = $ client-> selectDatabase (&#39;myDatabase&#39;);

// Sélectionnez une collection nommée &#39;MyCollection&#39; dans &#39;MyDatabase&#39; $ collection = $ database-> selectCollection (&#39;myCollection&#39;);

Echo "Base de données &#39;MyDatabase&#39; et collection &#39;myCollection&#39; \ n";

3. Insérer un document

Insérez un seul document:

 // insérer un document $ insertoneResult = $ collection-> insertone ([[
    &#39;name&#39; => &#39;Zhang San&#39;,
    &#39;Âge&#39; => 30,
    &#39;email&#39; => &#39;zhangsan@example.com&#39;,
    &#39;hobbies&#39; => [&#39;codage&#39;, &#39;lecture&#39;]
]));

printf ("Documents% D insérés, nouvel document ID:% s \ n", $ insertOrseResult-> getInsertCount (), $ insertOrseResult-> getInsertEDID ());

Insérez plusieurs documents:

 $ insertManyResult = $ collection-> insertMany ([
    [
        &#39;name&#39; => &#39;li si&#39;,
        &#39;Âge&#39; => 25,
        &#39;City&#39; => &#39;Pékin&#39;
    ],
    [
        &#39;name&#39; => &#39;wang wu&#39;,
        &#39;âge&#39; => 35,
        &#39;ville&#39; => &#39;shanghai&#39;,
        &#39;status&#39; => &#39;actif&#39;
    ]]
]));

printf ("Documents% d insérés \ n", $ insertManyResult-> getInsertCount ());
foreach ($ insertManyResult-> getInserTEDID () comme $ id) {
    ECHO "Nouveau ID de document:". $ id. "\ n";
}

4. Document de requête (Find)

Interroger tous les documents:

 $ cursor = $ collection-> find (); // sans paramètres, il s&#39;agit d&#39;interroger tous les écho "tous les documents: \ n";
foreach ($ curseur comme document $) {
    // $ Document est un objet MongoDB \ BSON \ Serializable qui peut être converti en un tableau print_r ($ document-> jSonSerialize ()); // Sortie plus amicale}

Requête avec condition:

 // des documents de requête avec un âge supérieur ou égal à 30 $ cursor = $ collection-> find ([&#39;Âge&#39; => [&#39;$ gte&#39; => 30]]);

echo "\ nage> = 30 documentation: \ n";
foreach ($ curseur comme document $) {
    print_r ($ document-> jSonSerialize ());
}

// Le nom de la requête est «li si» et la ville est `` beijing &#39;du document $ cursor = $ collection-> find ([&#39; name &#39;=>&#39; li si &#39;,&#39; city &#39;=>&#39; beijing &#39;]);
echo "\ nDocument du nom li siqi ville beijing: \ n";
foreach ($ curseur comme document $) {
    print_r ($ document-> jSonSerialize ());
}

5. Mettez à jour le document (mise à jour)

Mettez à jour un seul document:

 // Mette à jour le document avec le nom «Zhang San» et changer l&#39;âge à 31 ans
$ updateresult = $ collection-> updateOne (
    [&#39;name&#39; => &#39;Zhang San&#39;], // Condition de requête [&#39;$ set&#39; => [&#39;Age&#39; => 31]] // Update Operator);

printf ("Documents% D correspondant, documents modifiés% d \ n", $ upderesult-> getMatchedCount (), $ upderesult-> getmodifiedCount ());

Mettre à jour plusieurs documents:

 // Mette à jour tous les documents avec l&#39;âge de moins de 30
    [&#39;age&#39; => [&#39;$ lt&#39; => 30]],
    [&#39;$ set&#39; => [&#39;status&#39; => &#39;junior&#39;]]
));

printf ("Matted% d documents, Modified% d documents \ n", $ updatemanyResult-> getMatchedCount (), $ updatemanyResult-> getmodifiedCount ());

6. Supprimer les documents (supprimer)

Supprimer un seul document:

 // supprime le document avec le nom &#39;li si&#39; $ deleteresult = $ collection-> DeleteOne ([&#39;name&#39; => &#39;li si&#39;]);

printf ("supprimer% d documents \ n", $ deleteresult-> getdeletedCount ());

Supprimer plusieurs documents:

 // Supprimer tous les documents avec l&#39;âge supérieur à 30 $ Deleteresult = $ collection-> DeleteMany ([&#39;Âge&#39; => [&#39;$ gt&#39; => 30]]);

printf ("supprimer% d documents \ n", $ deleteresult-> getdeletedCount ());

Gestion des erreurs

Dans les applications pratiques, toute opération de base de données doit être enveloppée dans un bloc try-catch pour attraper les exceptions MongoDB\Driver\Exception\Exception , effectuant ainsi la gestion et la journalisation des erreurs appropriées. Ceci est crucial pour la stabilité de l'environnement de production.

Grâce à ces opérations de base, vous pouvez interagir avec MongoDB dans votre application PHP. N'oubliez pas que le pouvoir de MongoDB est son langage de requête flexible et ses riches opérateurs, qui n'est que la pointe de l'iceberg.

Des choses sur l'optimisation des performances et le déploiement de l'environnement de production

Obtenir des fonctions de base n'est que la première étape. Nous devons combattre la combinaison de PHP et MongoDB, en particulier dans l'environnement de production, les performances et la stabilité sont des sujets inévitables. Cette chose ne peut pas être sûre si vous l'installez, et il y a de nombreuses astuces à l'intérieur.

1. Index: "Accélérateur" de MongoDB. Si l'indice d'une base de données relationnelle est la pierre angulaire des requêtes optimisées, alors MongoDB est le même, ou encore plus important. Sans un index approprié, MongoDB effectuera une analyse de collecte complète lors de l'interrogation d'une grande quantité de données, et ses performances sont terribles.

  • Créer un index : créer des index en fonction de votre modèle de requête. Par exemple, si vous interrogez souvent par user_id , créez un index pour user_id .
     $ collection-> createIndex ([&#39;user_id&#39; => 1]); // 1 signifie index ascendant $ collection-> createIndex ([&#39;e-mail&#39; => 1], [&#39;unique&#39; => true]); // Index unique
  • Index composite : Si vous interrogez souvent plusieurs champs en même temps, considérez l'index composite. Faites attention à l'ordre des champs d'index, qui affecteront l'efficacité de la requête.
  • Index clairsemé et index TTL : Pour les champs facultatifs, vous pouvez créer des index clairsemés. Pour les scènes où les anciennes données doivent être supprimées automatiquement, l'index TTL (Time-to Live) est un outil magique.
  • Vérifiez régulièrement l'utilisation de l'index : utilisez db.collection.getIndexes() et db.collection.explain() pour analyser les plans de requête pour garantir que l'indice est utilisé efficacement.
  • 2. Poolage de connexion: ne gaspillez pas les ressources du pilote MongoDB de PHP (en particulier lorsqu'il est utilisé via MongoDB\Client ) prend en charge la mise en commun de la connexion par défaut. Cela signifie que chaque fois que vous new MongoDB\Client() , si les paramètres sont les mêmes, il essaiera de réutiliser la connexion existante au lieu d'établir une nouvelle connexion TCP à chaque fois. Ceci est très essentiel pour réduire les frais généraux de connexion et améliorer la vitesse de réponse.

    • Meilleure pratique : créez une instance MongoDB\Client au début de votre application (comme la phase d'initialisation du cadre) et réutilisez cette instance tout au long du cycle de vie de la demande. N'utilisez pas new Client() dans chaque fonction ou méthode.
    • Remarque : Dans l'environnement PHP-FPM, chaque processus d'enfant FPM aura son propre pool de connexion. Si vos scripts PHP sont exécutés pendant une courte période, l'effet de la mise en commun des connexions peut ne pas être aussi évident, mais c'est toujours une bonne habitude.

    3. Lire et écrire des ensembles de séparation et de répliques: Haute disponibilité et évolutivité Les déploiements MongoDB dans des environnements de production sont presque tous basés sur des ensembles de répliques. Les ensembles de répliques fournissent une redondance de données, un basculement automatique (élections primaires) et une séparation en lecture-écriture.

    • Connectez les répliques : votre chaîne de connexion PHP doit contenir les adresses de tous les membres de l'ensemble de répliques et spécifiez le nom de jeu de répliques. mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myReplicaSet
    • Préférence de lecture : vous pouvez configurer si les opérations de lecture sont lues à partir du nœud principal ou du nœud secondaire. La valeur par défaut est de lire de la primaire pour assurer la cohérence des données. Si les exigences en temps réel pour les données ne sont pas élevées, vous pouvez configurer la lecture du secondaire pour partager la pression du primaire. $client = new MongoDB\Client("mongodb://...", ['readPreference' => 'secondaryPreferred']);
    • Opération d'écriture : l'opération d'écriture est par défaut et ne peut être exécutée que sur le nœud principal.

    4. Sharding: L'arme ultime pour l'expansion horizontale Lorsque votre volume de données atteint le niveau de PB, ou que les IOPS et le CPU d'un seul serveur deviennent un goulot d'étranglement, la rupture est une solution pour MongoDB pour atteindre une échelle horizontale. Il stocke les données sur plusieurs fragments.

    • Perception de l'application PHP : une fois que le cluster MongoDB est configuré avec des fragments, l'application PHP est toujours connectée au processus de routage mongos , et il n'est pas nécessaire de savoir sur quelle fragment les données sont distribuées. Cela réduit considérablement la complexité au niveau de l'application.
    • Sélection de la clé de fragment : Il est crucial de choisir une bonne clé de fragment, qui affecte directement l'uniformité de distribution des données, l'efficacité de la requête et les problèmes chauds. Cela nécessite une planification et des tests minutieux.

    5. Surveillance et journalisation

    • Surveillance MongoDB : Utilisez MongoDB Atlas (service cloud) ou le système de surveillance auto-construit (tel que Prometheus Grafana) pour surveiller les divers indicateurs de MongoDB: CPU, mémoire, disque IO, nombre de connexions, requête lente, type d'opération, etc.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment corriger le bug 'ce dossier est vide' dans Windows File Explorer Comment corriger le bug 'ce dossier est vide' dans Windows File Explorer Oct 05, 2025 am 03:18 AM

IffilesApparmissingInfileExplorerRsespiteBeingPresent, tryTheSesteps: 1.RestartWindowSexplorevataskManager.2.Runthebuilt-infileExplorerTrouShooter.3.CLEARFILEExplorerHistoryAnSeTeTFolderviews.4

Comment utiliser une instruction de cas dans MySQL Comment utiliser une instruction de cas dans MySQL Oct 04, 2025 am 03:57 AM

ACASESTATIONSINMYSQLENablesConditionalLogicInQueries, Soutenir les évaluations basées sur l'orcondition (Simple) (recherchées).

Comment utiliser l'éditeur de politique de sécurité locale (secpol.msc) dans Windows Comment utiliser l'éditeur de politique de sécurité locale (secpol.msc) dans Windows Oct 04, 2025 am 05:57 AM

TOCONFIGURSWINDOWSSECURITYSETTISTUSUSSECPOL.MSC, OpenTHERUNIGOG, TYPESECPOL.MSC, ANDONFIRMUAC.NavigateThroughAccountpolicies, LocalPolicies etAdvancedAuditSttings.SetStrongPasswordRules, AssignSUserRights, Pertiner la réédiction, ainsi

Comment vérifier si une variable est vide en php Comment vérifier si une variable est vide en php Oct 04, 2025 am 03:35 AM

UseEmpty () toCheckifavariableIsEmpty; iTreturnstrueforfalse, null, "", 0,0.0, "0", etmptyarrays, faisant enterrement desChentialChecks.

Comment installer MongoDB sur Windows? Comment installer MongoDB sur Windows? Oct 06, 2025 am 01:07 AM

DownloadMongodbCommunityEditionfromTheofficialwebsiteforwindows.2.Runthe.msiinstaller, ChooseCompleteSetup, andinstallmongodbasaservice.3.optionallyskipmongodbcompassinstallation.4

Comment sélectionner les données dans une table MySQL Comment sélectionner les données dans une table MySQL Oct 04, 2025 am 02:24 AM

Utilisez une instruction SELECT pour interroger les données des tables MySQL, et vous pouvez filtrer, trier et limiter les résultats en combinaison avec des clauses telles que Where, OrderBy et Limit, telles que: SelectName, EmailFromUsers WHEREAGE> 18OrderByNameAlClimit5.

Comment utiliser la fonction array_map en php Comment utiliser la fonction array_map en php Oct 05, 2025 am 01:05 AM

La fonction Array_Map est utilisée pour appliquer la fonction de rappel à chaque élément d'un ou plusieurs tableaux, renvoyant le nouveau tableau sans modifier le tableau d'origine. 1. La syntaxe est array_map (rappel, array1, array2, ...), qui prend en charge le traitement de tableau unique ou multiple. 2. La conversion numérique peut être implémentée via des fonctions anonymes, telles que les éléments de tableau carré. 3. Prend en charge la saisie directe des chaînes de nom de fonction intégrées, telles que Strtoupper pour convertir les chaînes en majuscules. 4. Lorsque vous opérez dans la plupart des tableaux, le rappel reçoit les mêmes éléments d'index de chaque tableau et est complété avec Null lorsqu'il existe différentes longueurs. 5. Lorsque le rappel est nul, plusieurs tableaux peuvent être combinés en tableaux bidimensionnels en fonction des index pour réaliser l'effet "Zipper" du tableau. Cette fonction améliore la lisibilité du code et

Comment utiliser MongoDB avec Java et Spring Boot? Comment utiliser MongoDB avec Java et Spring Boot? Oct 05, 2025 am 01:16 AM

Configurez la connexion, définissez le modèle et le référentiel pour utiliser MongoDB. Ajoutez d'abord la dépendance à Spring-Boot-Starter-Data-MongoDB, puis définissez Spring.data.mongodb.uri dans application.properties pour se connecter à la base de données; Créez ensuite la classe utilisateur annotée @Document comme modèle de données, définissez l'interface UserRepository contenant des opérations communes héritant de Mongorepository; Injecter le référentiel dans le service pour implémenter l'ajout, la suppression, la modification et la requête, et peut utiliser Mongotemplate pour personnaliser les conditions de requête pour les requêtes complexes.

See all articles