PHP가 대량의 mysql data_php 팁을 쿼리하여 발생하는 메모리 부족 문제에 대한 솔루션
이 기사의 예에서는 PHP가 대량의 MySQL 데이터를 쿼리할 때 발생하는 메모리 부족 문제에 대한 솔루션을 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
1. 질문
PHP를 사용하여 대량의 MySQL 데이터를 쿼리할 때 프로그램이 아직 실행되지 않고 경고 팝업이 나타납니다.
치명적인 오류: 허용된 메모리 크기 100663296바이트가 소진되었습니다(103바이트 할당 시도)
오류 메시지: PHP가 할당한 100M 메모리가 이미 사용되었습니다.
2. 해결책:
가장 간단한 해결책은 실행 파일의 헤드에
을 추가하는 것입니다.ini_set('memory_limit','256M');
PHP에서 사용하는 메모리 공간을 늘리려면 메모리를 256M 이상으로 늘리세요
하지만 다음에 더 많은 데이터를 읽으려면 어떻게 해야 할까요? 계속해서 데이터를 늘릴 수 없어서 PHP가 서버의 메모리를 잡아먹게 됩니다.
다음은 함수입니다:
php에서 사용하는 메모리 양을 가져오려면 memory_get_usage() 메서드를 사용하세요. 읽은 데이터 항목의 수가 증가함에 따라 PHP에서 사용하는 메모리도 단계적으로 증가하는 것으로 나타났습니다.
PHP가 mysql을 쿼리할 때의 데이터가 메모리에 저장되어 있나요? 몇 번 검색해본 결과 이것이 실제로 의미하는 바임을 알았습니다.
mysql의 C API 함수에는 mysql_use_result() 및 mysql_store_result()가 포함됩니다
mysql_store_result()는 mysqlServer에서 클라이언트로 결과 세트를 읽는 반면, mysql_use_result()는 결과 세트의 메타 정보만 읽습니다.
1. PHP의 mysql_query는 mysql_store_result()를 호출하여 자동으로 결과 세트를 얻고 캐시합니다
2. PHP의 또 다른 함수인 mysql_unbuffered_query()는 mysql_use_result()를 호출합니다. 한편, 이는 대규모 결과 세트를 처리할 때 상당한 메모리를 절약합니다. 반면, 전체 SQL 문이 실행될 때까지 기다리지 않고 첫 번째 행을 가져온 직후 결과 집합을 작업할 수 있습니다.
그래서 많은 양의 데이터를 읽을 때는 mysql_query() 대신 mysql_unbuffered_query()를 사용할 수 있습니다. 테스트해본 결과 정말 그렇습니다. 그리고 모든 데이터를 가져온 후에도 메모리가 1MB 이내로 유지되고 늘어나지 않았습니다.
mysql_unbuffered_query()는 SQL 쿼리를 MySQL로 보내지만, mysql_query()처럼 결과 집합을 자동으로 가져오고 캐시하지는 않습니다. 한편으로 이는 매우 큰 결과 세트를 처리할 때 상당한 메모리를 절약합니다. 반면, 전체 SQL 문이 실행될 때까지 기다리지 않고 첫 번째 행을 가져온 직후 결과 집합을 작업할 수 있습니다. 여러 데이터베이스 연결을 사용하는 경우 선택적 매개변수 link_identifier를 지정해야 합니다.
mysql_unbuffered_query()의 이점에는 비용이 듭니다. mysql_num_rows() 및 mysql_data_seek()는 mysql_unbuffered_query()가 반환한 결과 집합 위에 사용할 수 없습니다. 또한, 새로운 SQL 쿼리를 MySQL에 보내기 전에 캐시되지 않은 SQL 쿼리에 의해 생성된 모든 결과 행을 가져와야 합니다.
따라서 비즈니스 요구에 따라 적절하게 기능을 선택해야 합니다
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

MySQL에서 외국 키의 기능은 테이블 간의 관계를 설정하고 데이터의 일관성과 무결성을 보장하는 것입니다. 외국 키는 참조 무결성 검사 및 계단식 작업을 통해 데이터의 효과를 유지합니다. 성능 최적화에주의를 기울이고 사용할 때 일반적인 오류를 피하십시오.

MySQL과 Mariadb의 주요 차이점은 성능, 기능 및 라이센스입니다. 1. MySQL은 Oracle에 의해 개발되었으며 Mariadb는 포크입니다. 2. MariaDB는 높은 하중 환경에서 더 나은 성능을 발휘할 수 있습니다. 3. Mariadb는 더 많은 스토리지 엔진과 기능을 제공합니다. 4.MySQL은 듀얼 라이센스를 채택하고 MariaDB는 완전히 오픈 소스입니다. 선택할 때 기존 인프라, 성능 요구 사항, 기능 요구 사항 및 라이센스 비용을 고려해야합니다.

Session_Start ()로 여러 통화를하면 경고 메시지와 가능한 데이터 덮어 쓰기가 발생합니다. 1) PHP는 세션이 시작되었다는 경고를 발행합니다. 2) 세션 데이터의 예상치 못한 덮어 쓰기를 유발할 수 있습니다. 3) Session_status ()를 사용하여 반복 통화를 피하기 위해 세션 상태를 확인하십시오.

AI는 작곡가 사용을 최적화하는 데 도움이 될 수 있습니다. 특정 방법에는 다음이 포함됩니다. 1. 종속성 관리 최적화 : AI는 종속성을 분석하고 최상의 버전 조합을 권장하며 충돌을 줄입니다. 2. 자동화 된 코드 생성 : AI는 모범 사례를 준수하는 composer.json 파일을 생성합니다. 3. 코드 품질 향상 : AI는 잠재적 인 문제를 감지하고 최적화 제안을 제공하며 코드 품질을 향상시킵니다. 이러한 방법은 기계 학습 및 자연어 처리 기술을 통해 구현되어 개발자가 효율성과 코드 품질을 향상시킬 수 있도록 도와줍니다.

MySQL 및 Phpmyadmin은 다음 단계를 통해 효과적으로 관리 할 수 있습니다. 1. 데이터베이스 작성 및 삭제 : Phpmyadmin을 클릭하여 완료하십시오. 2. 테이블 관리 : 테이블을 만들고 구조를 수정하고 인덱스를 추가 할 수 있습니다. 3. 데이터 작동 : 삽입, 업데이트, 데이터 삭제 및 SQL 쿼리 실행을 지원합니다. 4. 가져 오기 및 내보내기 데이터 : SQL, CSV, XML 및 기타 형식을 지원합니다. 5. 최적화 및 모니터링 : 최적화 가능한 명령을 사용하여 테이블을 최적화하고 쿼리 분석기 및 모니터링 도구를 사용하여 성능 문제를 해결하십시오.

session_start () iscrucialinphpformanagingUsersessions.1) itiniteSanewsessionifnoneexists, 2) ResumesAnxistessions, and3) setSasessionCookieForContInuityAcrosrequests, enablingplicationsirecationSerauthenticationAndpersonalizestContent.

MySQL을 안전하고 철저하게 제거하고 모든 잔차 파일을 정리하려면 다음 단계를 따르십시오. 1. MySQL 서비스 중지; 2. MySQL 패키지 제거; 3. 구성 파일 및 데이터 디렉토리를 정리하십시오. 4. 제거가 철저한 지 확인하십시오.

MySQL에서는 altertabletable_nameaddcolumnnew_columnvarchar (255) 이후에 필드를 추가하여 altertabletable_namedropcolumncolumn_to_drop을 사용하여 필드를 삭제합니다. 필드를 추가 할 때는 쿼리 성능 및 데이터 구조를 최적화하기위한 위치를 지정해야합니다. 필드를 삭제하기 전에 작업이 돌이킬 수 없는지 확인해야합니다. 온라인 DDL, 백업 데이터, 테스트 환경 및 저하 기간을 사용하여 테이블 구조 수정은 성능 최적화 및 모범 사례입니다.
