MySQL Native Driver 개요

MySQL Native Driver는 PHP 확장으로 작성되었지만 PHP 프로그래머에게 새로운 API를 제공하지 않는다는 점에 유의해야 합니다. MySQL 데이터베이스 연결을 위한 프로그래머 API는 MySQL 확장인 mysqli 및 PDO MYSQL에서 제공됩니다. 이러한 확장은 이제 MySQL Native Driver의 서비스를 사용하여 MySQL 서버와 통신할 수 있습니다. 따라서 MySQL Native Driver를 API로 생각해서는 안 됩니다.

왜 사용합니까?

MySQL 네이티브 드라이버를 사용하면 MySQL 클라이언트 라이브러리를 사용하는 것보다 많은 이점이 있습니다.

이전 MySQL 클라이언트 라이브러리는 MySQL AB(현재 Oracle Corporation)에서 작성했으므로 MySQL 라이선스에 따라 릴리스되었습니다. 이로 인해 궁극적으로 PHP에서 기본적으로 MySQL 지원이 비활성화되었습니다. 그러나 MySQL Native Driver는 PHP 프로젝트의 일부로 개발되었으므로 PHP 라이선스 하에 출시됩니다. 이것은 과거에 문제가 되었던 라이센스 문제를 제거합니다.

또한 과거에는 MySQL 클라이언트 라이브러리 복사본에 대해 MySQL 데이터베이스 확장을 빌드해야 했습니다. 이것은 일반적으로 PHP 소스 코드를 빌드하는 머신에 MySQL이 설치되어 있어야 함을 의미했습니다. 또한 PHP 애플리케이션이 실행 중일 때 MySQL 데이터베이스 확장은 런타임에 MySQL 클라이언트 라이브러리 파일을 호출하므로 파일을 시스템에 설치해야 했습니다. MySQL Native Driver를 사용하면 표준 배포판의 일부로 포함되므로 더 이상 그렇지 않습니다. 따라서 PHP를 구축하거나 PHP 데이터베이스 애플리케이션을 실행하기 위해 MySQL을 설치할 필요가 없습니다.

MySQL Native Driver는 PHP 확장으로 작성되었기 때문에 PHP의 동작과 밀접하게 연결되어 있습니다. 이는 드라이버가 PHP 메모리 관리 시스템을 사용하기 때문에 특히 메모리 사용과 관련하여 효율성이 향상됩니다. 또한 PHP 메모리 제한을 지원합니다. MySQL Native Driver를 사용하면 MySQL Client Library를 사용하는 것과 비슷하거나 더 나은 성능을 얻을 수 있으며 항상 가장 효율적인 메모리 사용을 보장합니다. 메모리 효율성의 한 예는 MySQL 클라이언트 라이브러리를 사용할 때 각 행이 메모리에 두 번 저장되는 반면 MySQL 네이티브 드라이버를 사용하면 각 행이 메모리에 한 번만 저장된다는 사실입니다.

참고: 메모리 사용량 보고

MySQL Native Driver는 PHP 메모리 관리 시스템을 사용하기 때문에 memory_get_usage()로 메모리 사용량을 추적할 수 있습니다. 이것은 C 함수 malloc()을 대신 사용하기 때문에 libmysqlclient에서는 불가능합니다.

특수 기능

MySQL 네이티브 드라이버는 또한 MySQL 데이터베이스 확장이 MySQL 클라이언트 라이브러리를 사용할 때 사용할 수 없는 몇 가지 특수 기능을 제공합니다. 이러한 특수 기능은 다음과 같습니다.

성능 통계 기능은 성능 병목 현상을 식별하는 데 매우 유용할 수 있습니다.

MySQL Native Driver는 또한 mysqli 확장과 함께 사용될 때 지속적인 연결을 허용합니다.

SSL Support

MySQL 네이티브 드라이버는 SSL을 지원합니다.

압축 프로토콜 지원

MySQL Native Driver는 압축된 클라이언트 서버 프로토콜을 지원합니다. 확장 ext/mysqli는 MySQL 네이티브 드라이버를 사용하도록 구성된 경우에도 이 기능을 활용할 수 있습니다. PDO_MYSQL은 mysqlnd와 함께 사용할 때 압축을 지원하지 않습니다.

명명된 파이프 지원

명명된 파이프를 사용하여 Windows 환경에서 연결할 수 있습니다.