php 5.3 alpha가 나왔군요. 주요 특징 중 하나가 mysqlnd를 지원하는 것인데, php에는 이미 ext/mysql, ext/mysqli, PDO/mysql 이렇게 세 가지 mysql api가 있지요. 복잡하게스리 ...
ext/mysql은 전통적인 함수군입니다. ext/mysqli(mysql-improved)는 mysql 4.1에서 추가된 기능을 100% 활용할 수 있다는 장점이 있지요. 4.1부터 프로토콜이 상당히 바뀌었고 (에러메세지가 여러개 나오기도 하고) 성능도 개선되었다고 합니다. ext/mysql은 함수 호출방식인데 ext/mysqli는 추가로 oop-style의 인터페이스도 지원을 하지요.
php5가 나오면서 PDO가 소개됐지요. PDO는 db abstract layer인데, 기존에 PEAR::DB나 ADODB의 역할을 대신해준다고 볼 수 있겠습니다.
에... 암튼 이번에 mysqlnd는 또 다른 api가 추가된 건 아니고요, php만을 위해서 c-level의 mysql driver를 작성했다고 이해하면 되겠습니다. 기존에 ext/mysql이나 ext/mysqli 그리고 PDO/mysql은 libmysql을 바인딩한것인데, mysqlnd는 php를 위해 새롭게 작성됐기 때문에 php만의 구조를 십분 활용해서 성능이 좋다고 하네요.
.... 라고는 하지만 발표내용을 읽어보면 성능향상에 너무 기대하지는 말라고 하고 mysqlnd의 장점을 이렇게 정리해놨어요.
총평을 해보자면, php 내부의 구조개선을 위해서 libmysql에 의존하지 않는 mysql driver를 재작성해서 대체한거군요. php 응용개발자에겐 시큰둥한 이슈일지도 모르겠습니다. 하지만 시간을 두고 안정화가 된다면 mysqlnd를 선택할 이유가 충분해보입니다.
5.3 stable은 2008년 10월 중순에 나올 예정이랩니다.
참고자료
ext/mysql은 전통적인 함수군입니다. ext/mysqli(mysql-improved)는 mysql 4.1에서 추가된 기능을 100% 활용할 수 있다는 장점이 있지요. 4.1부터 프로토콜이 상당히 바뀌었고 (에러메세지가 여러개 나오기도 하고) 성능도 개선되었다고 합니다. ext/mysql은 함수 호출방식인데 ext/mysqli는 추가로 oop-style의 인터페이스도 지원을 하지요.
php5가 나오면서 PDO가 소개됐지요. PDO는 db abstract layer인데, 기존에 PEAR::DB나 ADODB의 역할을 대신해준다고 볼 수 있겠습니다.
에... 암튼 이번에 mysqlnd는 또 다른 api가 추가된 건 아니고요, php만을 위해서 c-level의 mysql driver를 작성했다고 이해하면 되겠습니다. 기존에 ext/mysql이나 ext/mysqli 그리고 PDO/mysql은 libmysql을 바인딩한것인데, mysqlnd는 php를 위해 새롭게 작성됐기 때문에 php만의 구조를 십분 활용해서 성능이 좋다고 하네요.
.... 라고는 하지만 발표내용을 읽어보면 성능향상에 너무 기대하지는 말라고 하고 mysqlnd의 장점을 이렇게 정리해놨어요.
- Easier to compile: no more linking against libmysql : 더이상 libmysql 필요치 않음
- Easier to compile: no need to have libmysql on the PHP build host: php소스만 받아서 컴파일 가능
- License: PHP license, no need for FLOSS Exception any more : libmysql의 라이센스에서 벗어남 (mysql의 듀얼 라이센스 정책 얘긴거같음)
- Native: uses PHP memory management, supports PHP memory limit
- Native: keeps every row only once in memory, with libmysql you have it twice in memory
- New: keeps a long list of performance related statistics for bottle-neck analysis
- New: persistent connections for ext/mysqli
- Performance: can be faster than libmysql in certain cases
- Future performance: we consider a client-side result set cache (pre-alpha design study in Bazaar)
- … and much more
총평을 해보자면, php 내부의 구조개선을 위해서 libmysql에 의존하지 않는 mysql driver를 재작성해서 대체한거군요. php 응용개발자에겐 시큰둥한 이슈일지도 모르겠습니다. 하지만 시간을 두고 안정화가 된다면 mysqlnd를 선택할 이유가 충분해보입니다.
5.3 stable은 2008년 10월 중순에 나올 예정이랩니다.
참고자료
- http://forge.mysql.com/wiki/PHP_MYSQLND php의 mysql api에 대해 총정리되어있네요.
- http://www.php.net/archive/2008.php#id2008-08-01-1
- http://ditto.textcube.com/5
Trackbas address :: http://hardworker.tistory.com/trackback/13
-
Tracked from HARDWORKER
at 2008/08/07 15:38
삭제
Subject: NEW in php 5.3 - INTRO
한동안 코딩을 안해서 php가 어떻게 변해가는지도 몰랐군요. 5.3에 mysqlnd가 들어간단 이메일이 와서 그런가보다 했는데, 5.3에 그냥 지나칠수 없는 변화들이 있어 공부할겸 정리를 해보렵니다. 제가 주로 만져본 언어가 php, javascript라서 namespace, lambda 같은 녀석들은 익숙치가 않네요. php.net의 5.3 alpha1 news에 나온 주요 변경사항은 이렇습니다. Namespaces (documentation ma.....
-
Tracked from sh's words
at 2008/08/12 03:43
삭제
Subject: mysqli vs PDO
요즘 회사에서 개발표준화의 일환으로 웹 프레임워크를 제작하고 있다. MVC의 형태를 가지게 될 예정인데 그 중 내가 Model 부분을 진행하는 중이다. DAO부분을 작성하려다 mysql을 위한 api로 뭘 ......
