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)
MYSQLND_MS_SLAVE_SWITCH
(string)
MYSQLND_MS_LAST_USED_SWITCH
(string)
Relacionadas con mysqlnd_ms_query_is_select()
MYSQLND_MS_QUERY_USE_MASTER
(integer)
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)
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)
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)
MYSQLND_MS_QOS_CONSISTENCY_SESSION
(integer)
MYSQLND_MS_QOS_CONSISTENCY_STRONG
(integer)
MYSQLND_MS_QOS_OPTION_GTID
(integer)
MYSQLND_MS_QOS_OPTION_AGE
(integer)
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 |