이 기사는 PHP 애플리케이션의 성능을 크게 최적화하기 위한 인덱싱 관련 내용을 주로 소개하는 mysql에 대한 관련 지식을 제공합니다. 모두에게 도움이 되기를 바랍니다.
친구가 두 달 전 빠른 온라인 홍보를 위해 프로젝트를 하려고 했고, 특정 회사의 소스코드를 직접 구매해서 판매자에게 온라인 배포를 요청했습니다. 소스코드를 본 후 친구에게 직접 이렇게 말했습니다: '나 속았어.
다음과 같은 평가를 위한 근거가 있습니다.
실시간에 가까운 애플리케이션으로서 핵심 코드는 PHP로 작성되었으며, 여러 시나리오의 동시 및 반복 요청은 데이터베이스 테이블 레코드를 통해 제어됩니다.
Turning
코드를 받은 지 두 달이 지났습니다. 틈날 때마다 가끔 살펴보며 이미 코드의 구조와 주요 기능에 대해 전반적으로 이해하고 있습니다. 이제 심각한 성능 문제가 있으므로 성능 최적화를 시도해 볼 차례입니다.
수십 개의 예약된 작업이 쉬지 않고 실행되고 지속적으로 시스템을 구동한다는 점을 고려하면 예약된 작업과 관련된 기능을 먼저 이해해야 합니다. 내 자신의 이해를 바탕으로 더 이상 필요하지 않은 20개 이상의 계획된 작업을 먼저 중단했습니다. 쓸모없는 예약 작업을 일시 중지한 후 전체 시스템 CPU 사용량이 60% 이상으로 떨어졌고, 귀찮은 알림 문자 메시지와 이메일이 마침내 중단되었습니다. 하루를 기다려도 친구들은 기능이 영향을 받았다고 보고하지 않았는데, 이는 아이디어와 출발점이 정확하다는 것을 보여줍니다.
프로세스가 CPU 자원의 200% 이상을 차지하고 있는 것을 발견했습니다. 소스 코드를 읽어보니 MySQL의 사용량이 많은 데에는 이유가 있고 그럴 수도 있다는 것을 알지만 여전히 왜 그렇게 많은 리소스를 소비하는지 알고 싶습니다.
MySQL 서버에 로그인하여 느린 로그가 활성화되어 있는지 확인하세요. '%slow%';와 같은 변수를 표시하고 느린 쿼리 로그가 활성화되어 있는지 확인하세요.
그런 다음 로그를 확인하고 특정 SQL 문이 항상 로그에 나타납니다.개발 프로젝트에서 엔지니어는 "사용 가능한" 코드뿐만 아니라 "사용하기 쉬운" 코드도 작성해야 합니다. 이 예에서는 두 개의 인덱스를 생성하여 시스템 성능을 크게 향상시킬 수 있습니다. 즉, 코드를 "사용 가능"에서 "사용하기 쉬움"으로 변경합니다.
이 글에서 언급한 성능 최적화는 운영과 유지 관리에 중점을 두고 있으며 코드에서의 성능 최적화는 아직 다루지 않았습니다. 그러나 일반적인 원칙은 정확합니다. 캐시를 더 많이 사용하고 느린 IO 장치의 동기 읽기를 최대한 줄이는 것입니다.
추천 학습: "mysql 비디오 튜토리얼", "PHP 비디오 튜토리얼"
위 내용은 PHP 애플리케이션의 성능을 크게 최적화하기 위해 MySQL 인덱스 생성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!