Rechercher une fonction PHP

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Astuces SQL concernées

Exemple #1 Exemple montrant l'utilisation des constantes mysqlnd_ms

Le plugin de réplication et de balance de charge (mysqlnd_ms) effectue une séparation des lectures et des écritures pour diriger les requêtes d'écriture vers un serveur MySQL maître, et les requêtes de lecture vers un serveur MySQL esclave. Le plugin a une logique interne de séparation lecture/écriture. Elle est relativement basique. Toutes les requêtes qui commencent par SELECT sont considérées comme des requêtes en lecture qui sont envoyées vers un serveur MySQL esclave listé dans le fichier de configuration du plugin. Toutes les autres requêtes sont redirigées vers le serveur MySQL maître spécifié dans le fichier de configuration du plugin.

Les astuces SQL fournies par l'utilisateur peuvent être utilisées pour écraser ce comportement, afin d'en maîtriser totalement le processus. Les astuces SQL sont des commentaires standards SQL. Le plugin analysera le début de la chaîne de requête pour y trouver un commentaire SQL avec des commandes spécifiques, qui contrôlera la redirection de la requête. Les autres systèmes intervenant dans le processus de la requête ne sont pas affectés par les astuces SQL, tout simplement parcequ'ils les ignoreront.

Le plugin supporte 3 astuces SQL pour diriger les requêtes vers un des serveurs MySQL esclaves, le serveur MySQL maître, ou vers le dernier serveur MySQL utilisé. Les astuces SQL doivent être placées en début de requête pour être reconnues par le plugin.

Pour des raisons de portabilité, il est recommandé d'utiliser les constantes MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH et MYSQLND_MS_LAST_USED_SWITCH au lieu de leurs valeurs littérales.

<?php
/* utilisation des constantes pour une portabilité maximale */
$master_query "/*" MYSQLND_MS_MASTER_SWITCH "*/SELECT id FROM test";

/* Valide, mais moins portable : utilisation littérale au lieu des constantes */
$slave_query "/*ms=slave*/SHOW TABLES";

printf("master_query = '%s'\n"$master_query);
printf("slave_query = '%s'\n"$slave_query);
?>

Les exemples ci-dessus vont afficher :

master_query = /*ms=master*/SELECT id FROM test
slave_query = /*ms=slave*/SHOW TABLES

MYSQLND_MS_MASTER_SWITCH (chaîne de caractères)
Astuce SQL utilisée pour envoyer une requête au serveur MySQL maître de réplication.
MYSQLND_MS_SLAVE_SWITCH (chaîne de caractères)
Astuce SQL utilisé pour envoyer une requête à un des serveurs MySQL esclaves de réplication.
MYSQLND_MS_LAST_USED_SWITCH (chaîne de caractères)
Astuce SQL utilisé pour envoyer une requête au dernier serveur MySQL utilisé. Ce peut être soit un maître, soit un esclave.

En rapport avec la fonction mysqlnd_ms_query_is_select()

MYSQLND_MS_QUERY_USE_MASTER (entier)
Si la fonction mysqlnd_ms_is_select() retourne MYSQLND_MS_QUERY_USE_MASTER pour une requête donnée, le mécanisme interne de séparation des lectures/écritures recommande d'envoyer la requête vers un serveur MySQL maître de réplication.
MYSQLND_MS_QUERY_USE_SLAVE (entier)
Si la fonction mysqlnd_ms_is_select() retourne MYSQLND_MS_QUERY_USE_SLAVE pour une requête donnée, le mécanisme interne de séparation des lectures/écritures recommande d'envoyer la requête vers un serveur MySQL esclave de réplication.
MYSQLND_MS_QUERY_USE_LAST_USED (entier)
Si la fonction mysqlnd_ms_is_select() retourne MYSQLND_MS_QUERY_USE_LAST_USED pour une requête donnée, le mécanisme de séparation des lectures/écritures recommande d'envoyer la requête vers le dernier serveur utilisé.

mysqlnd_ms_set_qos(), en rapport avec la qualité du service des filtres et des niveaux de services

MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL (entier)
Utilisé pour demander une éventuelle consistence du niveau de service depuis la fonction mysqlnd_ms_set_qos(). Une consistence éventuelle est la qualité par défaut du service lors d'une lecture depuis un esclave de réplication asynchrone MySQL. Les données retournées dans ce niveau de service peuvent ou pas être non à jour, suivant si l'esclave sélectionné a déjà répliqué les dernières modifications survenues sur le serveur maître de réplication MySQL.
MYSQLND_MS_QOS_CONSISTENCY_SESSION (entier)
Utilisé pour demander une consistence de session du niveau de service depuis la fonction mysqlnd_ms_set_qos(). Une consistence de session est défini pour lire vos écritures. Le client est garanti de voir ces propres dernières modifications.
MYSQLND_MS_QOS_CONSISTENCY_STRONG (entier)
Utilisé pour demander une consistence forte du niveau de service depuis la fonction mysqlnd_ms_set_qos(). Une consistence forte est utilisée pour assurer à tous les clients de voir chaque modification effectuée par les autres.
MYSQLND_MS_QOS_OPTION_GTID (entier)
Utilisé comme une option du niveau de service avec la fonction mysqlnd_ms_set_qos() pour paramétrer la consistence de session.
MYSQLND_MS_QOS_OPTION_AGE (entier)
Utilisé comme une option du niveau de service avec la fonction mysqlnd_ms_set_qos() pour paramétrer une consistence éventuelle.

Autre

Le numéro de version du plugin peut être obtenu en utilisant la constante MYSQLND_MS_VERSION ou la constante MYSQLND_MS_VERSION_ID. La constante MYSQLND_MS_VERSION est une représentation sous forme de chaîne de caractères du numéro de version numérique de la constante MYSQLND_MS_VERSION_ID, qui est un entier, comme 10000. Les développeurs peuvent calculer le numéro de version comme ceci :

Version (partie) Exemple
Majeur*10000 1*10000 = 10000
Mineur*100 0*100 = 0
Patch 0 = 0
MYSQLND_MS_VERSION_ID 10000

MYSQLND_MS_VERSION (chaîne de caractères)
La chaîne représentant la version du plugin, par exemple, 1.0.0-prototype.
MYSQLND_MS_VERSION_ID (entier)
Le numéro de version du plugin, par exemple, 10000.

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-mysqlnd-ms.constants.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut