mysqlnd_ms
PHP Manual

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles sólo cuando la extensión haya sido compilada con PHP, o bien sea cargada dinámicamente en ejecución.

Relacionadas con sugerencias SQL

Ejemplo #1 Ejemplo demostrando el uso de constantes de mysqlnd_ms

El complemento de replicación y equilibrado de carga de mysqlnd (mysqlnd_ms) realiza la división de lectura/escritura. Esta división dirige las consultas de escritura a u servidor maestro de MySQL, y las consultas de solo lectura a servidores esclavos de MySQL. El complemento posee una lógica interna de división de lectura/escritura. Todas las consultas que empiecen con SELECT son consideradas consultas de solo lectura, las cuales son enviadas a un servidor esclavo de MySQL que esté enumerado en el fichero de configuración del complmento. Todas las demás consultas son dirigidas al servidor maestro de MySQL que también está especifcado en el fichero de configuración del complemento.

Las sugerencias SQL proporcionadas por un usuario se pueden usar para invalidar la división automática de lectura/escritura, para poder obtener control total sobre el proceso. Las sugerencias SQL siguen el estándar de los comentarios SQL. El complemento examinará el comienzo de un string de consulta para buscar un comentario SQL para ciertos comandos, los cuales luego controlarán la redirección de la consulta. Otros sistemas involucrados en el procesamiento de la consulta no se ven afectados por las sugerencias SQL, ya que dichos sistemas ignorarán los comentarios SQL.

El complemento admite tres sugerencias SQL para dirigir consultas a los servidores esclavos de MySQL, al servidor maestro de MySQL, o al último servidor MySQL usado. Las sugerencias SQL se deben colocar al comienzo de una consulta para que puedan ser reconocidas por el complemento.

Para una mejor portabilidad, se recomienda usar las constantes como string ( MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH y MYSQLND_MS_LAST_USED_SWITCH) en lugar de sus valores literales.

<?php
/* Usar constantes para una portabilidad máxima */
$master_query "/*" MYSQLND_MS_MASTER_SWITCH "*/SELECT id FROM test";

/* Válido pero menos portable: usar literales en lugar de constantes */
$slave_query "/*ms=slave*/SHOW TABLES";

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

El resultado de los ejemplos serían:

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

MYSQLND_MS_MASTER_SWITCH (string)
Sugerencia SQL usada para enviar una consulta al servidor maestro de replicación MySQL.
MYSQLND_MS_SLAVE_SWITCH (string)
Sugerencia SQL usada para enviar una consulta a uno de los servidores esclavos de replicación MySQL.
MYSQLND_MS_LAST_USED_SWITCH (string)
Sugerencia SQL usada para enviar una consulta al último servidor MySQL usado. Este servidor puede ser un servidor maestro o esclavo en una configuración de replicación MySQL.

Relacionadas con mysqlnd_ms_query_is_select()

MYSQLND_MS_QUERY_USE_MASTER (integer)
Si mysqlnd_ms_is_select() devuelve MYSQLND_MS_QUERY_USE_MASTER para una consulta dada, el mecanismo interno de división de lectura/escritura recomienda enviar la consulta a un servidor maestro de replicación MySQL.
MYSQLND_MS_QUERY_USE_SLAVE (integer)
Si mysqlnd_ms_is_select() devuelve MYSQLND_MS_QUERY_USE_SLAVE para una consulta dada, el mecanismo interno de división de lectura/escritura recomienda enviar la consulta a un servidor esclavo de replicación MySQL.
MYSQLND_MS_QUERY_USE_LAST_USED (integer)
Si mysqlnd_ms_is_select() devuelve MYSQLND_MS_QUERY_USE_LAST_USED para una consulta dada, el mecanismo interno de división de lectura/escritura recomienda enviar la consulta al último servidor usado.

Relacionadas con mysqlnd_ms_set_qos(), con el filtro de calidad de servicio y con el nivel de servicio

MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL (integer)
Se usa para solicitar el nivel de servicio de consistencia final desde la función mysqlnd_ms_set_qos(). La consistencia final es la calidad de servicio predeterminada cuando se lee desde un esclavo de replicación MySQL asíncrono. Los datos devueltos en este nivel de servicio puede ser antiguos o no, dependiendo de si los esclavos seleccionados han replicado los últimos cambios realizados desde el maestro de replicación MySQL.
MYSQLND_MS_QOS_CONSISTENCY_SESSION (integer)
Se usa para solicitar el nivel de servicio de consistencia de sesión desde la función mysqlnd_ms_set_qos(). La consistencia de sesción está definida como la lectura de sus escrituras. Al cliente se le garantiza que podrá ver sus últimos cambios.
MYSQLND_MS_QOS_CONSISTENCY_STRONG (integer)
Se usa para la solicitude del nivel de servicio de consistencia fuerte desde la función mysqlnd_ms_set_qos(). La consistencia fuerte se usa para asegurarse de que todos los clientes vean los cambios de los demás.
MYSQLND_MS_QOS_OPTION_GTID (integer)
Se usa como una opción de nivel de servicio con mysqlnd_ms_set_qos() para parametrizar la consistencia de sesión.
MYSQLND_MS_QOS_OPTION_AGE (integer)
Se usa como una opción de nivel de servicio con mysqlnd_ms_set_qos() para parametrizar la consistencia final.

Otras

Se puede obtener el número de versión del complemento usando MYSQLND_MS_VERSION o MYSQLND_MS_VERSION_ID. MYSQLND_MS_VERSION es el string que representa el número de versión de MYSQLND_MS_VERSION_ID, que es un entero como 10000. Los desarrolladores pueden calcular el número de versión como sigue.

Versión (parte) Ejemplo
Mayor*10000 1*10000 = 10000
Menor*100 0*100 = 0
Parche 0 = 0
MYSQLND_MS_VERSION_ID 10000

MYSQLND_MS_VERSION (string)
Un string con la versión del complemento, por ejemplo, "1.0.0-prototype".
MYSQLND_MS_VERSION_ID (integer)
Número de versión del complemento, por ejemplo, 10000.


mysqlnd_ms
PHP Manual