PHP 개발자가 흔히 범하는 10가지 MySQL 실수에 대한 게임 개발자 분석 및 수정
1. InnoDB 대신 MyISAM을 사용하세요
완전히 틀렸어요, 반박 이유:
우선 원글에서는 MyISAM이 기본으로 사용된다고 되어 있었는데, 사실 MySQL 5.5.x부터 InnoDB가 기본 테이블이 되었습니다. 엔진.
게다가 단순히 InnoDB를 사용한다고 해서 모든 문제가 해결되는 것은 아닙니다. 심지어 맹목적으로 사용하면 애플리케이션 성능이 10%, 심지어 40%까지 저하될 수도 있습니다.
포럼 섹션 테이블, 뉴스 분류 테이블, 각종 코드 테이블, 기타 오랫동안 운영되지 않는 테이블 등 특정 비즈니스를 구체적으로 처리하는 것이 가장 좋은 방법입니다. 그래도 뛰어난 성능을 갖춘 MyISAM 엔진을 사용해야 합니다. 성능.
사용자, 계정, 파이프라인 등 데이터 무결성과 타이밍이 엄격하게 요구되는 트랜잭션 처리가 필요한 경우에는 InnoDB 엔진을 사용해야 하며 애플리케이션도 트랜잭션 처리 메커니즘을 잘 활용해야 합니다. . 물론 트랜잭션 처리는 필연적으로 많은 성능 손실을 가져오지만 이는 단순한 동시성이 높은 애플리케이션에서는 꼭 필요한 작업입니다.
마지막으로, 외래 키 제약 조건은 성능에 심각한 영향을 미치기 때문에 일반적으로 공용 웹 인터넷 애플리케이션에서는 사용되지 않습니다. 데이터 무결성은 여전히 프로그래머나 애플리케이션 아키텍처 자체의 견고성에 의존하여 유지됩니다. 공식적인 세 번째 패러다임은 기업 내부 MIS 시스템 및 12306과 같은 웹사이트에서만 사용됩니다.
2. PHP의 mysql 방법을 사용하세요
완전히 틀린 것은 아니지만 적절하게 선택해야 합니다.
Mysqli는 좋지만 모든 서버가 PHP용 mysqli 지원을 컴파일한 것은 아닙니다.
애플리케이션이 자신이 배포한 서버만 사용하도록 결정할 수 있고 애플리케이션이 완전히 직접 개발된 경우 mysqli가 최선의 선택입니다.
그러나 애플리케이션이 가상 호스트에 배포되거나 다른 사람(예: 분산 프로젝트)에 의해 배포될 가능성이 높으면 MySQL 기능 세트를 정직하게 사용하거나 잘 캡슐화하거나 성숙한 프레임워크를 사용하여 SQL을 제거하는 것이 좋습니다. 주입.
3. 사용자 입력을 필터링하지 마세요
말할 것도 없이 이것은 MagicQuote이거나 성숙한 프레임워크입니다. SQL 주입은 오래된 주제입니다.
4. UTF-8을 사용하지 마세요
대부분의 경우 그렇습니다. 하지만 신중하게 고려해야 합니다.
UTF-8 문자 하나가 3바이트를 차지하므로 UTF-8이 파일보다 좋습니다. GBK와 같은 다른 인코딩은 33% 더 큽니다. 즉, 동일한 웹페이지가 UTF-8 인코딩에서는 100KB라면 GBK 인코딩에서는 66KB에 불과합니다. 따라서 PHP가 UTF-8을 사용하도록 결정되더라도 프런트 엔드 페이지는 상황에 따라 필요한 인코딩을 선택해야 합니다. 그러나 PHP가 UTF-8을 사용하고 프런트 엔드 템플릿이 GBK이며 템플릿 엔진이 강력하지 않은 경우 트랜스코딩 작업만으로 충분합니다. 따라서 단순히 UTF-8을 선택하는 대신 필요한 인코딩을 사용해 보십시오.
마지막 단어: UTF-8: strlen("I")=3 및 GBK: strlen("I")=2
5. SQL을 사용해야 하는 경우에는 PHP를 사용하세요.
적절하게 동일 고려 :
예를 들어 어떤 사람들은 등록 시간과 게시 시간의 효과를 얻기 위해 테이블을 생성할 때 기본값으로 CURRENT_TIMESTAMP를 채우는 데 익숙합니다. 또는 시간 판단 SQL 문에 SELECT x FROM tab1 WHERE regdate와 같은 내용을 작성합니다. 올바른 방법은 MySQL의 시간 기능을 사용하지 않고 애플리케이션에서 시간을 계산하는 것입니다. 분산 어플리케이션이라면 시간을 균일하게 관리하기 위한 타임 서버가 있어야 합니다.
기사에 언급된 일부 MySQL 수학 함수도 주의해서 사용해야 합니다. 대규모 애플리케이션에서는 데이터베이스에 대한 부담이 가장 큰 경우가 많으며, 복잡한 WHERE 문은 쿼리 속도를 저하시키는 주범이기 때문입니다. 따라서 계산은 코어 데이터베이스보다는 글로벌 안정성에 영향을 주지 않는 저렴한 애플리케이션 서버에 최대한 배치되어야 합니다.
6. 쿼리를 최적화하지 않음
말할 필요도 없이 대규모 애플리케이션에서는 다양한 JOIN 사용도 허용하지 않습니다. 두 개의 쿼리를 작성하더라도 PHP를 사용하여 데이터를 병합할 수 있습니다.
7. 잘못된 데이터 유형 사용
INT, TinyINT, VARCHAR, CHAR, TEXT와 같은 필드 유형을 합리적으로 선택하면 문제가 없습니다.
Date, DateTime, TIMESTAMP 세 가지 유형은 대규모 애플리케이션에서는 사용하면 안 되며 대신 INT(10) UNSIGNED를 사용해야 합니다.
하나는 성능이고, 다른 하나는 애플리케이션, 특히 PHP에서 UNIX_TIMESTAMP 타임스탬프를 변환하는 것이 매우 편리하다는 것입니다. 다양한 시간 형식을 출력하기 위해 Date를 사용하는 것은 번거롭습니다.
8. SELECT 쿼리에 *
사용
9. 인덱싱이 부족하거나 과대인덱싱
인덱스가 필요하지만 인덱스로 쿼리를 해결할 수 없는 경우 memcache 또는 nosql 솔루션을 고려하세요.
10. 백업하지 마세요
작성자가 그냥 숫자를 만들어낸 것인가요?
11. 또한 다른 데이터베이스를 고려하지 마세요
이는 매우 정확합니다. 애플리케이션에서는 해당 애플리케이션에 대해 다른 데이터베이스를 선택해야 할 뿐만 아니라 특정 비즈니스 유형에 대해 동일한 애플리케이션에서 여러 데이터베이스를 병렬로 사용해야 합니다. 데이터베이스가 아닌 경우에도 다양한 캐싱, 메모리 저장 및 기타 솔루션이 있습니다.
위 내용은 게임 개발자를 위한 콘텐츠를 포함하여 게임 개발자와 PHP 개발자가 흔히 저지르는 MySQL 오류 10가지에 대한 수정 분석을 소개한 것입니다. 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)

PHP에는 4 가지 주요 오류 유형이 있습니다. 1. NOTICE : 가장 작은 것은 정의되지 않은 변수에 액세스하는 것과 같이 프로그램을 방해하지 않습니다. 2. 경고 : 심각한 통지는 파일을 포함하지 않는 것과 같은 프로그램을 종료하지 않습니다. 3. FatalError : 가장 심각한 것은 기능을 부르는 것과 같은 프로그램을 종료합니다. 4. parseerror : 구문 오류는 엔드 태그를 추가하는 것을 잊어 버리는 것과 같이 프로그램이 실행되는 것을 방지합니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP에서 Password_hash 및 Password_Verify 기능을 사용하여 보안 비밀번호 해싱을 구현해야하며 MD5 또는 SHA1을 사용해서는 안됩니다. 1) Password_hash는 보안을 향상시키기 위해 소금 값이 포함 된 해시를 생성합니다. 2) Password_verify 암호를 확인하고 해시 값을 비교하여 보안을 보장합니다. 3) MD5 및 SHA1은 취약하고 소금 값이 부족하며 현대 암호 보안에는 적합하지 않습니다.

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

HTTP 요청 방법에는 각각 리소스를 확보, 제출, 업데이트 및 삭제하는 데 사용되는 Get, Post, Put and Delete가 포함됩니다. 1. GET 방법은 리소스를 얻는 데 사용되며 읽기 작업에 적합합니다. 2. 게시물은 데이터를 제출하는 데 사용되며 종종 새로운 리소스를 만드는 데 사용됩니다. 3. PUT 방법은 리소스를 업데이트하는 데 사용되며 완전한 업데이트에 적합합니다. 4. 삭제 방법은 자원을 삭제하는 데 사용되며 삭제 작업에 적합합니다.

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7

phpoop에서 self ::는 현재 클래스를 말하며, Parent ::는 부모 클래스를 말하며, static ::는 늦은 static 바인딩에 사용됩니다. 1. self :: 정적 방법과 일정한 호출에 사용되지만 늦은 정적 바인딩을 지원하지는 않습니다. 2.parent :: 하위 클래스가 상위 클래스 방법을 호출하는 데 사용되며 개인 방법에 액세스 할 수 없습니다. 3. Static ::는 상속 및 다형성에 적합한 후기 정적 결합을 지원하지만 코드의 가독성에 영향을 줄 수 있습니다.

PHP는 $ \ _ 파일 변수를 통해 파일 업로드를 처리합니다. 보안을 보장하는 방법에는 다음이 포함됩니다. 1. 오류 확인 확인, 2. 파일 유형 및 크기 확인, 3 파일 덮어 쓰기 방지, 4. 파일을 영구 저장소 위치로 이동하십시오.
