13

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

Dharman
  • 30,962
  • 25
  • 85
  • 135
Robert
  • 2,342
  • 2
  • 24
  • 41

2 Answers2

17

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

Artem Russakovskii
  • 21,516
  • 18
  • 92
  • 115
John
  • 249
  • 3
  • 6
7

mysql:

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

mysqlnd:

mysqlnd via plugins:

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

Grzegorz Adam Kowalski
  • 5,243
  • 3
  • 29
  • 40