MySQL vs MySQLi(PHP 사용 시)
MySQL과 MySQLi 중 어느 쪽이 더 좋습니까?그리고 왜?어떤 걸로 할까요?
성능뿐만 아니라 다른 관련 기능에서도 더 낫다는 뜻입니다.
MySQL 확장 기능 개선 개요를 보면 두 가지 차이점에 대해 알아야 할 모든 것을 알 수 있습니다.
유용한 주요 기능은 다음과 같습니다.
- 오브젝트 지향 인터페이스
- 준비된 진술에 대한 지원
- 여러 스테이트먼트에 대한 지원
- 거래 지원
- 확장 디버깅 기능
- 내장 서버 지원.
mysql, mysqli 및 PDO 중 하나를 선택하는 데 도움이 되는 매뉴얼 페이지가 있습니다.
- http://php.net/manual/en/mysqlinfo.api.choosing.php 및
- http://www.php.net/manual/en/mysqlinfo.library.choosing.php
PHP 팀은 새로운 개발을 위해 mysqli 또는 PDO_MySQL을 권장합니다.
mysqli 또는 PDO_MySQL 확장 중 하나를 사용하는 것이 좋습니다.새로운 개발에는 오래된 mysql 확장을 사용하지 않는 것이 좋습니다.상세한 기능 비교 매트릭스를 다음에 나타냅니다.3개의 확장기능의 전체적인 퍼포먼스는 거의 동일한 것으로 간주됩니다.확장의 성능은 PHP 웹 요청의 총 실행 시간의 극히 일부에 불과합니다.대부분의 경우 영향은 0.1%로 낮습니다.
이 페이지에는 확장 API를 비교하는 기능 매트릭스도 있습니다.mysqli와 mysql API의 주요 차이점은 다음과 같습니다.
mysqli mysql
Development Status Active Maintenance only
Lifecycle Active Long Term Deprecation Announced*
Recommended Yes No
OOP API Yes No
Asynchronous Queries Yes No
Server-Side Prep. Statements Yes No
Stored Procedures Yes No
Multiple Statements Yes No
Transactions Yes No
MySQL 5.1+ functionality Yes No
* http://news.php.net/php.internals/53799
라이브러리(새로운 mysqlnd와 libmysql)를 비교하는 추가 기능 매트릭스가 있습니다.
매우 철저한 블로그 기사입니다.
misqli 사용을 포기했습니다.그것은 그야말로 너무 불안정하다.mysqli를 사용하여 PHP를 크래시하는 쿼리를 받았지만 mysql 패키지에서는 정상적으로 동작합니다.또한 mysqli는 LONGTEXT 열에서 크래시됩니다.이 버그는 적어도 2005년부터 다양한 형태로 발생되어 파손된 상태로 남아 있습니다.저는 솔직히 준비된 문장을 사용하고 싶지만 mysqli는 충분히 신뢰할 수 없습니다(아무도 고치려고 하지 않는 것 같습니다).만약 당신이 정말로 준비된 진술서를 원한다면 PDO를 따르세요.
MySQLi는 개선된 MySQL을 의미합니다.MySQL 바인딩에 대한 객체 지향 인터페이스이므로 사용하기 쉽습니다.또한 준비된 스테이트먼트에 대한 지원도 제공합니다(매우 유용합니다).PHP 5를 사용하는 경우 MySQLi를 사용합니다.
더 좋은 것은 PDO입니다.그것은 덜 엄격한 인터페이스이며 MySQLi와 같은 기능을 제공합니다.
prepared 문을 사용하면 SQL 주입 가능성이 없어지기 때문에 편리합니다.서버 측에서 prepared 문을 사용하면 라운드 트립 횟수가 증가하므로 좋지 않습니다.
나에게 있어서 준비된 문장은 필수 기능이다.더 정확히 말하면 파라미터 바인딩이다(준비된 문장에서만 동작한다).SQL 명령에 문자열을 삽입할 수 있는 유일한 방법입니다.난 정말 '유효' 함수는 믿지 않아.DB 연결은 바이너리 프로토콜인데 왜 ASCII 제한 하위 프로토콜을 매개 변수에 사용하는가?
언급URL : https://stackoverflow.com/questions/548986/mysql-vs-mysqli-when-using-php
'source' 카테고리의 다른 글
like 절 JPQL의 매개 변수 (0) | 2022.09.08 |
---|---|
플랫 파일 데이터베이스 (0) | 2022.09.08 |
Java에서 URL 쿼리 매개 변수 인코딩 (0) | 2022.09.08 |
virtualenv 문제 - 활성화할 수 없음 (0) | 2022.09.08 |
N초를 datetime에 추가하는 표준 방법은 무엇입니까?Python에서 시간? (0) | 2022.09.08 |