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.
Version en cache
25/11/2024 05:07:15 Cette version de la page est en cache (à la date du 25/11/2024 05:07:15) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.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
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.