source

MySQL vs MySQLi(PHP 사용 시)

factcode 2022. 9. 8. 21:48
반응형

MySQL vs MySQLi(PHP 사용 시)

MySQL과 MySQLi 중 어느 쪽이 더 좋습니까?그리고 왜?어떤 걸로 할까요?

성능뿐만 아니라 다른 관련 기능에서도 더 낫다는 뜻입니다.

MySQL 확장 기능 개선 개요를 보면 두 가지 차이점에 대해 알아야 할 모든 것을 알 수 있습니다.

유용한 주요 기능은 다음과 같습니다.

  • 오브젝트 지향 인터페이스
  • 준비된 진술에 대한 지원
  • 여러 스테이트먼트에 대한 지원
  • 거래 지원
  • 확장 디버깅 기능
  • 내장 서버 지원.

mysql, mysqli 및 PDO 중 하나를 선택하는 데 도움이 되는 매뉴얼 페이지가 있습니다.

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

반응형