What the different between MySQL Native Driver and MySQL Client Library

做~自己de王妃 提交于 2019-12-30 18:25:55

问题


I want to know the different between MySQL Native Driver and MySQL Client Library and when to use both of them


回答1:


There is no big difference in the PHP language level.

  • libmysqlclient distributed by MySQL, mysqlnd distributed by PHP.
  • libmysqlclient is part of MySQL, you need install MySQL library.
  • Their license are different.
  • mysqlnd supports a lot of plugins (mysqlnd_ms & mysqlnd_qc & ...).
  • Because mysqlnd is part of PHP, its memory could be limited by PHP configuration.
  • mysqlnd is the default after 5.4

http://php.net/manual/en/mysqlinfo.library.choosing.php




回答2:


mysql:

  • dual licence
  • optional automatic reconnect
  • all memory allocation and deallocation is done using operating system memory management

mysqlnd:

  • PHP licence
  • Non-blocking, asynchronous queries
  • Performance statistics (mysqli_get_client_stats, mysqli_get_connection_stats)
  • LOAD LOCAL INFILE respects the open_basedir directive
  • All memory allocation and deallocation is done using the PHP memory management functions (you can track memory usage with PHP functions and debug features, and also PHP memory limits apply which has its pros and cons)

mysqlnd via plugins:

  • Replication and load balancing
  • Fail over
  • Lazy connections
  • Connection multiplexing
  • Query caching, MySQL InnoDB Memcached Plugin support
  • Transparent query manipulations (auto-EXPLAIN)

incompatibilities between mysql and mysqlnd:

  • values of bit data type are returned as binary strings with mysql.so and as decimal strings with mysqlnd.so (source).

Based on this and other docs: http://php.net/manual/en/mysqlinfo.library.choosing.php



来源:https://stackoverflow.com/questions/21534468/what-the-different-between-mysql-native-driver-and-mysql-client-library

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!