mysqli 확장을 사용하면 MySQL 4.1 이상에서 제공되는 기능에 액세스할 수 있습니다.
mysqli 확장 및 영구 연결
mysqli 확장의 영구 연결은 PHP5.3에서 도입되었습니다. PDO MYSQL 및 ext/mysql에는 이미 지원이 있습니다. 지속적인 연결의 기본 개념은 클라이언트 프로세스와 데이터베이스 간의 연결이 여러 번 생성되고 삭제되는 대신 클라이언트 프로세스를 통해 유지되고 재사용될 수 있다는 것입니다. 이렇게 하면 매번 새 연결을 생성해야 하는 오버헤드가 줄어들고 사용하지 않는 연결은 캐시되어 재사용할 수 있습니다.
mysql 확장과 달리 mysqli는 영구 연결을 여는 특별한 방법을 제공하지 않습니다. 지속적인 연결을 열어야 하는 경우 연결할 때 호스트 이름 앞에 p:를 추가해야 합니다.
지속적인 연결을 사용할 때의 문제점은 클라이언트 측에서 예측할 수 없는 상태에 있을 수 있다는 것입니다. 예를 들어 클라이언트가 예기치 않게 종료되기 전에 테이블 잠금이 활성화될 수 있습니다. 영구 연결을 재사용하는 새 클라이언트 프로세스는 연결을 "있는 그대로" 얻습니다. 이러한 방식으로 새 클라이언트 프로세스는 지속적인 연결을 더 잘 사용하기 위해 가능한 모든 정리 작업을 수행해야 하므로 프로그래머의 부담이 늘어납니다.
mysqli 확장의 영구 연결은 내장된 정리 처리 코드를 제공합니다. mysqli가 수행하는 정리 작업에는 다음이 포함됩니다.
활성 트랜잭션 롤백
임시 테이블 닫기 및 삭제
테이블 잠금 해제,
세션 변수 재설정
준비된 문을 닫습니다(PHP에서 자주 발생함)
Close 핸들러
GET_LOCK()을 통해 획득한 잠금을 해제합니다.
이렇게 하면 연결이 지속적으로 유지됩니다. 풀에서 반환된 연결은 클라이언트 프로세스가 사용하기 전에는 깨끗한 상태입니다.
mysqli 확장은 C-API 함수 mysql_change_user()를 자동으로 호출하여 이 정리 작업을 완료합니다.
자동 청소 기능에는 장점과 단점이 있습니다. 장점은 추가 정리 코드가 자동으로 호출되기 때문에 프로그래머가 더 이상 걱정할 필요가 없다는 것입니다. 그러나 단점은 연결 풀에서 연결이 반환될 때마다 정리 코드를 실행해야 하기 때문에 코드가 잠재적으로 느려질 수 있다는 것입니다.
이 자동 정리 코드는 PHP 컴파일 시 MYSQLI_NO_CHANGE_USER_ON_PCONNECT를 정의하여 끌 수 있습니다.
Mysqli 확장은 Mysql 네이티브 드라이버 또는 Mysql 클라이언트 라이브러리(libmysql)를 사용할 때 영구 연결을 지원합니다.
MySQLi 클래스
는 PHP와 MySQL 데이터베이스 간의 연결을 나타냅니다.
mysqli::$affected_rows — 이전 MySQL 작업에서 영향을 받은 행 수를 가져옵니다.
mysqli::autocommit — 이 데이터베이스 연결의 자동 명령 커밋 트랜잭션 모드를 켜거나 끕니다.
mysqli::begin_transaction — 트랜잭션 시작
mysqli::change_user — 지정된 데이터베이스 연결의 사용자 변경
mysqli::character_set_name — 현재 데이터베이스의 기본 문자 인코딩을 반환합니다. 데이터베이스 연결
mysqli::$client_info — MySQL 클라이언트 정보 가져오기
mysqli::$client_version — MySQL 클라이언트 버전을 문자열로 반환
mysqli::close — 닫기 이전에 열린 데이터베이스 연결
mysqli::commit — 트랜잭션 커밋
mysqli::$connect_errno — 마지막 연결 호출에서 오류 코드를 반환
mysqli::$connect_error — 마지막 연결 오류에 대한 문자열 설명을 반환합니다.
mysqli::__construct — MySQL 서버에 대한 새 연결을 엽니다.
mysqli::debug — 디버깅 작업을 수행합니다
mysqli ::dump_debug_info — 로그에 디버깅 정보 출력
mysqli::errno — 가장 최근 함수 호출의 오류 코드를 반환합니다.
mysqli::$error_list — 로그에서 오류 목록을 반환합니다. 마지막 명령 실행
mysqli::$error — 마지막 오류에 대한 문자열 설명을 반환합니다.
mysqli::$field_count — 가장 최근 쿼리에 대한 열 수를 반환합니다
mysqli::get_charset — 문자 세트 객체를 반환합니다
mysqli::get_client_info — MySQL 클라이언트 정보 가져오기
mysqli_get_client_stats — 클라이언트 프로세스별 통계를 반환합니다
mysqli_get_client_version — MySQL 클라이언트 버전(정수)
mysqli::get_connection_stats — 클라이언트 연결에 대한 통계를 반환합니다
mysqli::$host_info — 사용된 연결 유형을 나타내는 문자열을 반환합니다
mysqli::$protocol_version — 사용된 MySQL 프로토콜의 버전을 반환합니다.
mysqli::$server_info — MySQL 서버의 버전을 반환합니다.
mysqli::$server_version — MySQL의 버전을 반환합니다. 정수형 MySQL 서버
mysqli::get_warnings — SHOW WARNINGS 결과 가져오기
mysqli::$info — 가장 최근에 실행된 쿼리에 대한 정보를 검색합니다
mysqli:: init — MySQLi를 초기화하고 mysqli_real_connect()와 함께 사용할 리소스를 반환합니다
mysqli::$insert_id — 마지막 쿼리에 사용된 자동 생성 ID를 반환합니다.
mysqli::kill — 서버에 MySQL 스레드를 종료하도록 요청
mysqli::more_results — 확인 다중 쿼리의 쿼리 결과가 더 있는 경우
mysqli::multi_query — 데이터베이스에 대한 쿼리 수행
mysqli::next_result — multi_query의 다음 결과 준비
mysqli::options — 옵션 설정
mysqli::ping — 서버 연결을 핑하거나 연결이 끊어진 경우 다시 연결을 시도합니다
mysqli::poll — 연결 폴링
mysqli::prepare — 실행을 위한 SQL 문 준비
mysqli::query — 对数据库执行一次查询
mysqli::real_connect — mysql 서버에 대한 연결을 엽니다
mysqli::real_escape_string — 연결의 현재 문자 집합을 고려하여 SQL 문에 사용하기 위해 문자열의 특수 문자를 이스케이프합니다.
mysqli::real_query — 执行一个mysql查询
mysqli::reap_async_query — 비동기 쿼리에서 결과 가져오기
mysqli::refresh — 새로 고침
mysqli::release_savepoint — 명명된 저장 지점으로 트랜잭션을 롤백합니다
mysqli: :rollback — 回退当前事务
mysqli::rpl_query_type — RPL 쿼리 유형 반환
mysqli::savepoint — 명명된 트랜잭션 저장점 설정
mysqli::select_db — 选择用于数据库查询的默认数据库
mysqli::send_query — 发送请求并返回结果
mysqli::set_charset — 设置默认字符编码
mysqli::set_local_infile_default — 설정 해제 로컬 infile 로드 명령에 대한 사용자 정의 핸들러
mysqli::set_local_infile_handler — LOAD DATA LOCAL INFILE 명령에 대한 콜백 함수 설정
mysqli::$sqlstate — 이전 MySQL 작업에서 SQLSTATE 오류를 반환합니다
mysqli::ssl_set — SSL을 사용하여 보안 연결을 설정하는 데 사용
mysqli::stat — 현재 시스템 상태 가져오기
mysqli::stmt_init — 初始化一条语句并返回一个용于mysqli_stmt_prepare(调사용)적对象
mysqli::store_result — 마지막 쿼리에서 결과 집합을 전송합니다
mysqli::$thread_id — 현재 연결에 대한 스레드 ID를 반환합니다
mysqli::thread_safe — 返回是否是线程안전한
mysqli::use_result — 결과 집합 검색 시작
mysqli::$warning_count — 마지막 쿼리에서 경고 수를 반환합니다. 주어진 링크에 대해
MySQLi_STMT类
代表一个prepared语句。
mysqli_stmt::$affected_rows — 마지막 링크에 의해 변경, 삭제 또는 삽입된 총 행 수를 반환합니다. 실행된 문
mysqli_stmt::attr_get — 문 속성의 현재 값을 가져오는 데 사용됩니다.
mysqli_stmt::attr_set — 준비된 문의 동작을 수정하는 데 사용됩니다.
mysqli_stmt ::bind_param — 변수를 준비된 문에 매개변수로 바인딩
mysqli_stmt::bind_result — 변수를 결과 저장을 위해 준비된 문에 바인딩
mysqli_stmt::close — 준비된 문을 닫습니다
mysqli_stmt::data_seek — 명령문 결과 세트에서 임의의 행을 검색합니다
mysqli_stmt::$errno — 가장 최근 명령문 호출에 대한 오류 코드를 반환합니다
mysqli_stmt::$error_list — 마지막으로 실행된 문에서 오류 목록을 반환
mysqli_stmt::$error — 마지막 문 오류에 대한 문자열 설명 반환
mysqli_stmt::execute — 준비된 쿼리 실행
mysqli_stmt::fetch — 준비된 문의 결과를 바인딩된 변수로 가져옵니다
mysqli_stmt::$field_count — 주어진 문의 필드 수를 반환합니다
mysqli_stmt::free_result — 해제 주어진 명령문 핸들에 대한 저장된 결과 메모리
mysqli_stmt::get_result — 준비된 명령문에서 결과 세트 가져오기
mysqli_stmt::get_warnings — SHOW WARNINGS 결과 가져오기
mysqli_stmt ::$insert_id — 이전 INSERT 작업에서 생성된 ID 가져오기
mysqli_stmt::more_results — 다중 쿼리에서 추가 쿼리 결과가 있는지 확인
mysqli_stmt::next_result — 다음을 읽습니다. 다중 쿼리의 결과
mysqli_stmt::$num_rows — 명령문의 행 수를 반환합니다 결과 집합
mysqli_stmt::$param_count — 주어진 명령문에 대한 매개변수 수를 반환합니다
mysqli_stmt::prepare — 실행을 위한 SQL 문 준비
mysqli_stmt::reset — 준비된 문 재설정
mysqli_stmt::result_metadata — 준비된 문에서 결과 세트 메타데이터 반환
mysqli_stmt::send_long_data — 블록 단위로 데이터 보내기
mysqli_stmt::$sqlstate — 이전 문 작업에서 SQLSTATE 오류를 반환합니다.
mysqli_stmt::store_result — 준비된 명령문에서 결과 집합을 전송합니다. 성명
mysqli_result类
代表从一个数据库查询中获取的结果集
mysqli_result::$current_field — 결과 포인터의 현재 필드 오프셋 가져오기
mysqli_result: : data_seek — 결과 포인터를 결과의 임의 행으로 조정
mysqli_result::fetch_all — 모든 결과 행을 연관 배열, 숫자 배열 또는 둘 다로 가져옵니다
mysqli_result::fetch_array — 결과 행을 연관 배열, 숫자 배열 또는 둘 다로 가져옵니다
mysqli_result::fetch_assoc — 결과 행을 연관 배열로 가져옵니다
mysqli_result::fetch_field_direct — 메타 데이터 가져오기 단일 필드
mysqli_result::fetch_field — 결과 집합의 다음 필드를 반환합니다
mysqli_result::fetch_fields — 결과 집합의 필드를 나타내는 객체 배열을 반환합니다
mysqli_result::fetch_object — 결과 집합의 현재 행을 객체로 반환
mysqli_result::fetch_row — 결과 행을 열거형 배열로 가져오기
mysqli_result::$field_count — 숫자 가져오기 결과의 필드
mysqli_result::field_seek — 결과 포인터를 지정된 필드 오프셋으로 설정
mysqli_result::free — 결과와 관련된 메모리를 해제합니다
mysqli_result: :$lengths — 결과 집합에서 현재 행의 열 길이를 반환합니다.
mysqli_result::$num_rows — 결과의 행 수를 가져옵니다
MySQLi_Driver类
MySQLi 驱动.
client_info
客户端API头版本(比如:(string)"5.1.49")
client_version
客户端版本(比如:(int)50149)
driver_version
Mysqli驱动版本(比如:(int)101009 )
임베디드
是否开启了MySQLi嵌入式支持。
다시 연결
MySQLi_Warning类
代表一个Mysql警告。
메시지
消息字符串
sqlstate SQL状态errno
mysqli_warning::next — 다음 목적
mysqli_sql_Exception类
mysqli异常处理类
别name 和过时的Mysqli 函数mysqli_bind_param — mysqli_stmt_bin d_param의 이름 mysqli_bind_result — mysqli_stmt_bind_result의 이름mysqli_client_encoding — mysqli_character_set_name의 이름mysqli_sql_exception extends RuntimeException { /* 属性 */ protected string $sqlstate ; /* 继承的属性 */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; }
mysqli_connect — 别명 mysqli::__construct
mysqli::disable_reads_from_ 마스터 - 마스터에서 읽기 비활성화
mysqli_disable_rpl_parse — 禁用RPL解析
mysqli_enable_reads_from_master — 开启从主机读取
mysqli_enable_rpl_parse — 开启RPL解析
mysqli_escape_string — 别name mysqli_real_escape_string
mysqli_execute — mysqli_stmt_execute의 别명
mysqli_fetch — mysqli_stmt_fetch적 이름.
mysqli_get_cache_stats — 返回客户端Zval缓存统计信息
mysqli_get_metadata — mysqli_st mt_result_metadata의 이름
mysqli_master_query — 主/从机system中强제에서는 主机中执行一个查询
mysqli_param_count — mysqli_stmt_param_count별 이름
mysqli_report — 开启或禁用(Mysql)内部(错误)报告函数
mysqli_rpl_parse_enabled — 检查是否开启了RPL解析
mysqli_rpl_probe — RPL探测
mysqli_send_long_data — mysqli_stmt_send_long_data의 이름
mysqli_set_opt — mysqli_options적别name
mysqli_slave_query — 主/从机system中强机上执行一个查询

InnoDB는 Redologs 및 Undologs를 사용하여 데이터 일관성과 신뢰성을 보장합니다. 1. Redologs는 사고 복구 및 거래 지속성을 보장하기 위해 데이터 페이지 수정을 기록합니다. 2. 결점은 원래 데이터 값을 기록하고 트랜잭션 롤백 및 MVCC를 지원합니다.

설명 명령에 대한 주요 메트릭에는 유형, 키, 행 및 추가가 포함됩니다. 1) 유형은 쿼리의 액세스 유형을 반영합니다. 값이 높을수록 Const와 같은 효율이 높아집니다. 2) 키는 사용 된 인덱스를 표시하고 NULL은 인덱스가 없음을 나타냅니다. 3) 행은 스캔 한 행의 수를 추정하여 쿼리 성능에 영향을 미칩니다. 4) Extra는 최적화해야한다는 Filesort 프롬프트 사용과 같은 추가 정보를 제공합니다.

Temporary를 사용하면 MySQL 쿼리에 임시 테이블을 생성해야 할 필요성이 있으며, 이는 별개의, 그룹 비 또는 비 인덱스 열을 사용하여 순서대로 발견됩니다. 인덱스 발생을 피하고 쿼리를 다시 작성하고 쿼리 성능을 향상시킬 수 있습니다. 구체적으로, 설명 출력에 사용되는 경우, MySQL은 쿼리를 처리하기 위해 임시 테이블을 만들어야 함을 의미합니다. 이것은 일반적으로 다음과 같은 경우에 발생합니다. 1) 별개 또는 그룹을 사용할 때 중복 제거 또는 그룹화; 2) OrderBy가 비 인덱스 열이 포함되어있을 때 정렬하십시오. 3) 복잡한 하위 쿼리 또는 조인 작업을 사용하십시오. 최적화 방법은 다음과 같습니다. 1) Orderby 및 GroupB

MySQL/InnoDB는 4 개의 트랜잭션 격리 수준을 지원합니다. Readuncommitted, ReadCommitted, ReturableRead 및 Serializable. 1. READUCMITTED는 커밋되지 않은 데이터를 읽을 수 있으므로 더러운 판독 값을 유발할 수 있습니다. 2. ReadCommitted는 더러운 읽기를 피하지만 반복 할 수없는 독서가 발생할 수 있습니다. 3. RepeatableRead는 더러운 읽기와 반복 할 수없는 독서를 피하는 기본 레벨이지만 팬텀 독서가 발생할 수 있습니다. 4. 직렬화 가능한 것은 모든 동시성 문제를 피하지만 동시성을 줄입니다. 적절한 격리 수준을 선택하려면 균형 잡힌 데이터 일관성 및 성능 요구 사항이 필요합니다.

MySQL은 웹 응용 프로그램 및 컨텐츠 관리 시스템에 적합하며 오픈 소스, 고성능 및 사용 편의성에 인기가 있습니다. 1) PostgreSQL과 비교하여 MySQL은 간단한 쿼리 및 높은 동시 읽기 작업에서 더 잘 수행합니다. 2) Oracle과 비교할 때 MySQL은 오픈 소스와 저렴한 비용으로 인해 중소 기업에서 더 인기가 있습니다. 3) Microsoft SQL Server와 비교하여 MySQL은 크로스 플랫폼 응용 프로그램에 더 적합합니다. 4) MongoDB와 달리 MySQL은 구조화 된 데이터 및 트랜잭션 처리에 더 적합합니다.

MySQL Index Cardinality는 쿼리 성능에 중대한 영향을 미칩니다. 1. 높은 카디널리티 인덱스는 데이터 범위를보다 효과적으로 좁히고 쿼리 효율성을 향상시킬 수 있습니다. 2. 낮은 카디널리티 인덱스는 전체 테이블 스캔으로 이어질 수 있으며 쿼리 성능을 줄일 수 있습니다. 3. 관절 지수에서는 쿼리를 최적화하기 위해 높은 카디널리티 시퀀스를 앞에 놓아야합니다.

MySQL 학습 경로에는 기본 지식, 핵심 개념, 사용 예제 및 최적화 기술이 포함됩니다. 1) 테이블, 행, 열 및 SQL 쿼리와 같은 기본 개념을 이해합니다. 2) MySQL의 정의, 작업 원칙 및 장점을 배우십시오. 3) 인덱스 및 저장 절차와 같은 기본 CRUD 작업 및 고급 사용량을 마스터합니다. 4) 인덱스의 합리적 사용 및 최적화 쿼리와 같은 일반적인 오류 디버깅 및 성능 최적화 제안에 익숙합니다. 이 단계를 통해 MySQL의 사용 및 최적화를 완전히 파악할 수 있습니다.

MySQL의 실제 응용 프로그램에는 기본 데이터베이스 설계 및 복잡한 쿼리 최적화가 포함됩니다. 1) 기본 사용 : 사용자 정보 삽입, 쿼리, 업데이트 및 삭제와 같은 사용자 데이터를 저장하고 관리하는 데 사용됩니다. 2) 고급 사용 : 전자 상거래 플랫폼의 주문 및 재고 관리와 같은 복잡한 비즈니스 로직을 처리합니다. 3) 성능 최적화 : 인덱스, 파티션 테이블 및 쿼리 캐시를 사용하여 합리적으로 성능을 향상시킵니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

WebStorm Mac 버전
유용한 JavaScript 개발 도구
