MySQL 라이브러리 선택
mysqli 및 PDO_MySQL PHP 확장은 C 클라이언트 라이브러리 위에 있는 경량 래퍼입니다. 확장은 mysqlnd 라이브러리 또는 libmysqlclient
라이브러리를 사용할 수 있습니다. 라이브러리 선택은 컴파일 시간 결정입니다.
mysqlnd 라이브러리는 PHP 배포판의 일부입니다. 지연 연결 및 쿼리 캐싱과 같은 기능, libmysqlclient에서 사용할 수 없는 기능을 제공하므로 내장 mysqlnd 라이브러리를 사용하는 것이 좋습니다. 자세한 내용과 제공하는 기능 목록은 mysqlnd 설명서를 참조하십시오.
예 #1 mysqlnd 또는 libmysqlclient를 사용하기 위한 명령 구성
// Recommended, compiles with mysqlnd $ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd // Alternatively recommended, compiles with mysqlnd $ ./configure --with-mysqli --with-pdo-mysql // Not recommended, compiles with libmysqlclient $ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config
라이브러리 기능 비교
MySQL 클라이언트 서버 라이브러리(libmysqlclient) 대신 mysqlnd 라이브러리를 사용하는 것이 좋습니다. 두 라이브러리 모두 지원되며 지속적으로 개선되고 있습니다.
MySQL native driver (mysqlnd) | MySQL client server library (libmysqlclient ) |
|
---|---|---|
PHP 배포의 일부 | Yes | No |
PHP 버전 도입 | 5.3.0 | N/A |
License | PHP License 3.01 | Dual-License |
개발 현황 | Active | Active |
수명 주기 | No end announced | No end announced |
컴파일 기본값(모든 MySQL 확장에 대해) | Yes | No |
압축 프로토콜 지원 | Yes | Yes |
SSL 지원 | Yes | Yes |
명명된 파이프 지원 | Yes | Yes |
비차단, 비동기 쿼리 | Yes | No |
성능 통계 | Yes | No |
LOAD LOCAL INFILE은 open_basedir directive을 따릅니다. | Yes | No |
PHP의 기본 메모리 관리 시스템 사용(예: PHP 메모리 제한 준수) | Yes | No |
숫자 열을 double로 반환(COM_QUERY) | Yes | No |
숫자 열을 문자열로 반환(COM_QUERY) | Yes | Yes |
플러그인 API | Yes | Limited |
자동 재연결 | No | Optional |