mirror of
https://github.com/php/doc-fr.git
synced 2026-03-23 22:52:18 +01:00
138 lines
5.7 KiB
XML
138 lines
5.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 9598935f21bc472f22383fb989625f0b22785331 Maintainer: yannick Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="mysqlnd.overview">
|
|
<title>Introduction</title>
|
|
<simpara>
|
|
<emphasis role="bold">Ce que ce n'est pas</emphasis>
|
|
</simpara>
|
|
<simpara>
|
|
Bien que le pilote natif MySQL soit écrit comme une extension PHP, il est important
|
|
de noter qu'il ne fournit pas une nouvelle API au programmeur PHP. Les API programmeur
|
|
sont fournies par l'extension MySQL, <literal>mysqli</literal> et PDO
|
|
MySQL. Ces extensions peuvent maintenant utiliser les services du pilote natif MySQL pour communiquer
|
|
avec le serveur MySQL. Ainsi, il ne faut pas considérer le pilote natif MySQL comme une API.
|
|
</simpara>
|
|
<simpara>
|
|
<emphasis role="bold">Pourquoi l'utiliser?</emphasis>
|
|
</simpara>
|
|
<simpara>
|
|
Utiliser le pilote natif MySQL offre bon nombre d'avantages par rapport à
|
|
la bibliothèque MySQL cliente.
|
|
</simpara>
|
|
<simpara>
|
|
L'ancienne bibliothèque MySQL cliente a été écrite par MySQL AB (maintenant
|
|
partie d'Oracle Corporation) et a donc été publiée sous licence MySQL,
|
|
ce qui a eu pour conséquence de désactiver le support de MySQL par défaut
|
|
dans PHP. Vu que le pilote natif MySQL a été développé comme partie intégrante
|
|
du projet PHP, il est publié sous licence PHP, ce qui résout les soucis
|
|
de licence problématique dans le passé.
|
|
</simpara>
|
|
<simpara>
|
|
De plus, auparavant, on devait compiler les extensions de base de données
|
|
MySQL par rapport à une copie de la bibliothèque MySQL cliente, ce qui signifie qu'on devait avoir MySQL d'installé sur la machine sur laquelle l'on compile PHP à
|
|
partir des sources. Ainsi, quand l'application PHP était exécutée, les extensions
|
|
MySQL appelaient les fichiers de la bibliothèque MySQL cliente au démarrage, ceux-ci devant
|
|
être obligatoirement installés sur le système. Avec le pilote natif MySQL, ce n'est plus le cas
|
|
car il est inclus dans la distribution standard. Ainsi, l'on n'aura plus besoin d'avoir MySQL
|
|
installé pour compiler PHP ou exécuter des applications PHP faisant appel à une base de données.
|
|
</simpara>
|
|
<simpara>
|
|
Du fait que le pilote natif MySQL soit écrit comme une extension PHP, il est intimement
|
|
lié au cœur de PHP. Ceci implique une meilleure efficacité, notamment en ce qui concerne
|
|
l'utilisation de la mémoire, car le pilote utilise l'allocation mémoire de PHP et par
|
|
conséquent supporte les limites de mémoire. Utiliser le pilote natif MySQL aboutit à des
|
|
performances égales sinon meilleures qu'avec la bibliothèque cliente MySQL, car l'utilisation
|
|
de la mémoire est beaucoup plus efficace. Le fait que lors de l'utilisation de la bibliothèque cliente
|
|
MySQL, chaque enregistrement est stocké deux fois en mémoire alors que le client natif MySQL ne les
|
|
stocke qu'une fois constitue un bon exemple de bonne gestion de la mémoire.
|
|
</simpara>
|
|
<note>
|
|
<title>Surveillance de l'utilisation mémoire</title>
|
|
<simpara>
|
|
En raison du fait que le driver natif MySQL utilise le système de gestion mémoire
|
|
de PHP, son utilisation mémoire peut être surveillée avec la fonction
|
|
<function>memory_get_usage</function>. Ceci n'est pas possible
|
|
avec la bibliothèque libmysqlclient car elle utilise la fonction C malloc() à
|
|
la place.
|
|
</simpara>
|
|
</note>
|
|
<simpara>
|
|
<emphasis role="bold">Fonctionnalités spéciales</emphasis>
|
|
</simpara>
|
|
<simpara>
|
|
Le pilote natif MySQL fournit aussi quelques fonctionnalités spéciales non
|
|
disponibles avec la bibliothèque cliente MySQL, listées ci-dessous :
|
|
</simpara>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
Des connexions persistantes améliorées
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
La fonction spéciale <function>mysqli_fetch_all</function>
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Des appels aux statistiques de performance :
|
|
<function>mysqli_get_client_stats</function>,
|
|
<function>mysqli_get_connection_stats</function>
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<simpara>
|
|
Les statistiques de performances peuvent s'avérer très utiles pour identifier
|
|
des goulets d'étranglement de performances.
|
|
</simpara>
|
|
<simpara>
|
|
Le pilote natif MySQL fournit aussi des connexions persistantes lors de son
|
|
utilisation avec l'extension <literal>mysqli</literal>.
|
|
</simpara>
|
|
<simpara>
|
|
<emphasis role="bold">Le support de SSL</emphasis>
|
|
</simpara>
|
|
<simpara>
|
|
Le pilote natif MySQL (MySQL Native Driver) supporte SSL.
|
|
</simpara>
|
|
<simpara>
|
|
<emphasis role="bold">Le support du protocole compressé</emphasis>
|
|
</simpara>
|
|
<simpara>
|
|
Le pilote natif MySQL supporte le protocole client/serveur MySQL compressé.
|
|
L'extension <literal>ext/mysqli</literal> si configurée pour utiliser le pilote
|
|
natif MySQL peut aussi tirer avantage de cette fonctionnalité.
|
|
Il est à noter que <literal>PDO_MYSQL</literal> ne supporte
|
|
<emphasis>PAS</emphasis> la compression lorsqu'utilisé avec mysqlnd.
|
|
</simpara>
|
|
<simpara>
|
|
<emphasis role="bold">Support des pipes nommés</emphasis>
|
|
</simpara>
|
|
<simpara>
|
|
Les pipes nommés peuvent être utilisés pour se connecter sous Windows.
|
|
</simpara>
|
|
</chapter>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|