Rechercher une fonction PHP

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration de MySQL Native Driver
Nom Défaut Modifiable Historique
mysqlnd.collect_statistics "1" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqlnd.collect_memory_statistics "0" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqlnd.debug "" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqlnd.log_mask 0 PHP_INI_ALL Disponible depuis PHP 5.3.0
mysqlnd.mempool_default_size 16000 PHP_INI_ALL Disponible depuis PHP 5.3.3
mysqlnd.net_read_timeout "86400" PHP_INI_ALL Disponible depuis PHP 5.3.0. Avant PHP 7.2.0 la valeur par défaut était "31536000" et la variabilité était PHP_INI_SYSTEM
mysqlnd.net_cmd_buffer_size 5.3.0 - "2048", 5.3.1 - "4096" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqlnd.net_read_buffer_size "32768" PHP_INI_SYSTEM Disponible depuis PHP 5.3.0.
mysqlnd.sha256_server_public_key "" PHP_INI_PERDIR Disponible depuis PHP 5.5.0.
mysqlnd.trace_alloc "" PHP_INI_SYSTEM Disponible depuis PHP 5.5.0.
mysqlnd.fetch_data_copy 0 PHP_INI_ALL Disponible depuis PHP 5.6.0.
Pour plus de détails sur les modes PHP_INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqlnd.collect_statistics boolean

Active la collecte de différentes statistiques du client auxquelles vous pouvez accéder via mysqli_get_client_stats(), mysqli_get_connection_stats(), mysqli_get_cache_stats() et qui sont aussi décrites dans la section mysqlnd de la sortie de la fonction phpinfo().

Ce paramètre active toutes les statistiques de MySQL Native Driver sauf celles relatives à la gestion de la mémoire.

mysqlnd.collect_memory_statistics boolean

Active la collecte de différentes statistiques concernant la mémoire qui peuvent être consultées via mysqli_get_client_stats(), mysqli_get_connection_stats(), mysqli_get_cache_stats() et qui sont aussi montrées dans la section mysqlnd de la sortie de la fonction phpinfo().

Ce paramètre active les statistiques de gestion de la mémoire parmi les statistiques fournies par MySQL Native Driver.

mysqlnd.debug string

Journalise les communications en provenance de toute extension utilisant mysqlnd.

Le format de cette directive est mysqlnd.debug = "option1[,parameter_option1][:option2[,parameter_option2]]".

Les options de formatage des chaines sont les suivantes:

  • A[,file] - Ajoute la trace à un fichier. S'assure que les données sont écrites après chaque écriture en fermant puis rouvrant le fichier de trace (lent). Ceci aide à s'assurer que le fichier de traces sera complet même si l'application crash.

  • a[,file] - Ajoute la trace à un fichier.

  • d - Active la sortie depuis les macros DBUG_<N> pour l'état actuel. Peut être suivi d'une liste de mots-clés qui selectionnent la sortie seulement pour les macros DBUG avec ce mot-clé (filtre). Une liste vide de mot-clé sélectionnera tout.

  • f[,functions] - Limite les actions du débogueur à une liste spécifique de fonctions. Une liste vide fera en sorte que toutes les fonctions seront utilisées.

  • F - Marque chaque ligne de débogage du nom du fichier source contenant la macro causant cette sortie.

  • i - Marque chaque ligne de débogage du PID.

  • L - Marque chaque ligne de débogage du nom du fichier source ainsi que de la ligne de la macro qui cause cette sortie.

  • n - Marque chaque ligne de débogage de la profondeur actuelle de la fonction.

  • o[,file] - Similaire à a[,file] mais écrase les fichiers plutôt que de les compléter.

  • O[,file] - Similaire à A[,file] mais écrase les fichiers plutôt que de les compléter.

  • t[,N] - Active le traçage du flux de contrôle des fonctions. La profondeur maximale est précisée par N, par défaut 200.

  • x - Active le profilage.

  • m - Trace les allocations et désallocations de mémoire.

Exemple:

d:t:x:O,/tmp/mysqlnd.trace

Note:

Cette caractéristique n'est disponible que pour les versions debug de PHP. Fonctionne sur Microsoft Windows si PHP est en version debug et construit avec Microsoft Visual C version 9 et supérieures.

mysqlnd.log_mask integer

Définit quelle requête sera historisée. Par défaut, vaut 0, ce qui signifie que les logs sont désactivés. Il convient de définir cette option en utilisant un entier, et non une constante PHP. Par exemple, une valeur de 48 (16 + 32) va historiser les requêtes lentes qui utilisent soit 'no good index' (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) soit aucun index du tout (SERVER_QUERY_NO_INDEX_USED = 32). Une valeur de 2043 (1 + 2 + 8 + ... + 1024) historisera tout type de requêtes lentes.

Les types sont les suivants : SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2, SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32, SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256, SERVER_STATUS_NO_BACKSLASH_ESCAPES=512, et SERVER_QUERY_WAS_SLOW=1024.

mysqlnd.mempool_default_size integer

Taille par défaut de la file d'attente mémoire mysqlnd, utilisée par les jeux de résultats.

mysqlnd.net_read_timeout integer

mysqlnd et la MySQL Client Library, libmysqlclient utilise des API réseau différentes. mysqlnd utilise les flux PHP, alors que libmysqlclient utilise sa propre implémentation basée sur le système. PHP, par défaut, utilise un timeout en lecture de 60s. Ceci en utilisant le paramètre de php.ini, default_socket_timeout. Ceci s'applique à tous les flux qui ne précisent pas de timeout par défaut. mysqlnd n'affecte aucune autre valeur et donc des requêtes longues peuvent se voir déconnectées après default_socket_timeout secondes avec comme résultat un message d'erreur 2006 - MySQL Server has gone away. La MySQL Client Library affecte un timeout par défaut de 24 * 3600 secondes (1 jour) et attend les autres timeout, comme ceux de TCP/IP. mysqlnd utilise maintenant le même timeout très long. La valeur est configurable via le paramètre php.ini mysqlnd.net_read_timeout. mysqlnd.net_read_timeout est donc utilisé par toute extension (ext/mysql, ext/mysqli, PDO_MySQL) qui se repose sur mysqlnd. mysqlnd indique aux flux PHP d'utiliser mysqlnd.net_read_timeout. Notez qu'il peut y avoir des différences subtiles entre MYSQL_OPT_READ_TIMEOUT de la MySQL Client Library et les flux PHP, par exemple MYSQL_OPT_READ_TIMEOUT est dite fonctionnelle uniquement avec des connexions TCP/IP et, avant MySQL 5.1.2, seulement sous Windows. Les flux PHP, eux, n'ont pas cette limite. Voyez la documentation des flux en cas de doute.

mysqlnd.net_cmd_buffer_size integer

mysqlnd alloue un buffer interne pour le réseau d'une taille de mysqlnd.net_cmd_buffer_size (dans php.ini) octets pour chaque connexion. Si une commande du protocole MySQL Client Server, par exemple, COM_QUERY (requête normale), ne rentre pas dans le buffer, mysqlnd va agrandir celui-ci à la taille requise. A chaque fois que le buffer est agrandi pour une connexion, command_buffer_too_small va être incrémenté de un.

Si mysqlnd doit agrandir le buffer au-delà de sa taille initiale de mysqlnd.net_cmd_buffer_size octets pour presque toutes les connexions, vous devriez alors augmenter cette taille par défaut afin d'éviter les ré-allocations.

La taille par défaut du buffer est de 2048 octets dans PHP 5.3.0. Dans les versions suivantes, 4096 octets.

Il est recommandé d'avoir une taille de buffer au moins égale à 4096 octets car mysqlnd l'utilise aussi lors de la lecture de certains paquets de communication avec MySQL. Dans PHP 5.3.0, mysqlnd n'augmentera pas le buffer si MySQL envoie un paquet plus grand que la taille du buffer. Ainsi, mysqlnd ne peut pas décoder le paquet et l'application cliente recevra une erreur. Il n'y a que deux situations dans lesquelles le paquet peut être plus grand que les 2048 octets par défaut de mysqlnd.net_cmd_buffer_size sous PHP 5.3.0: le paquet véhicule un message d'erreur très long, ou le paquet contient des méta données de colonnes provenant de COM_LIST_FIELD (mysql_list_fields(), méta données d'une colonne de type string avec une valeur par défaut très grande (>1900 octets).

Depuis PHP 5.3.2, mysqlnd n'autorise plus l'affectation de buffers inférieurs à 4096 octets.

La valeur peut aussi être changée au moyen de mysqli_options(link, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size).

mysqlnd.net_read_buffer_size integer

Taille maximale du segment en lecture lors de la lecture du corps d'un paquet de commande MySQL. Le protocole serveur de MySQL encapsule toutes ses commandes dans des paquets. Les paquets consistent en un en-tête court suivi d'un corps contenant les infos. La taille du corps est encodée dans l'en-tête. mysqlnd lit le corps sous forme de segments de MIN(header.size, mysqlnd.net_read_buffer_size) octets. Si le corps d'un paquet est plus grand que mysqlnd.net_read_buffer_size octets, mysqlnd doit alors appeler read() plusieurs fois.

La valeur peut aussi être changée au moyen de mysqli_options(link, MYSQLI_OPT_NET_READ_BUFFER_SIZE, size).

mysqlnd.sha256_server_public_key string

En rapport avec le plugin d'authentification SHA-256. Fichier contenant la clé publique RSA sur serveur MySQL.

Les clients peuvent soit ommettre de définir une clé publique RSA et spécifier la clé via la directive de configuration PHP, ou bien, définir la clé au moment de l'exécution en utilisant la fonction mysqli_options(). Si aucun fichier de clé publique RSA n'est fourni par le client, alors la clé sera échangé conformément à la procédure du plugin d'authentification standard SHA-256.

mysqlnd.trace_alloc string

mysqlnd.fetch_data_copy integer

Impose la copie des jeux de résultats depuis les tampons internes vers des variables PHP au lieu d'utiliser le mécanisme par défaut de référence et de copie sur écriture. Veuillez vous référer aux, notes d'implémentation sur la gestion de mémoire pour plus de détails.

Copier les jeux de résultats au lieu d'avoir des variables PHP les référencant permet de libérér au plus tot la mémoire occupée par les variables PHP. En fonction du code de l'API cliente, les requêtes actuelles et de la taille de leurs jeux de résultats, ceci peut réduire l'empreinte mémoire de mysqlnd.

Ne pas activer avec PDO_MySQL. PDO_MySQL ne supporte pas encore ce mode.

Rechercher une fonction PHP

Version en cache

22/11/2024 01:41:50 Cette version de la page est en cache (à la date du 22/11/2024 01:41:50) 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.config.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