이 기사의 예에서는 PHP에서 MySQL로 대량의 데이터를 가져오기 위한 성능 최적화 기술을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
mysql에서는 php를 결합하여 일부 파일을 mysql로 가져옵니다. 여기서는 가져올 때 15,000개의 레코드를 분석하고 최적화하는 방법을 공유합니다.
이전에 기사가 몇 편 있었는데, 최근 Tiandi가 친구의 전화번호 계산을 위한 작은 프로젝트를 돕고 있었다고 합니다. 그때마다 필요에 따라 패키지된 전화번호가 데이터베이스에서 무작위로 생성되었습니다. 사람들은 끊임없이 이런 전화를 걸었습니다. 전화번호는 제품을 판매합니다(이러한 행동에 대한 약간의 경멸). 하지만 친구가 도움을 요청하면 우리는 도와줘야겠죠? 해당 프로그램은 2주 전 완료돼 테스트를 거쳐 인계됐다. 며칠 전에 친구가 전화해서 매일 전화번호를 가져오는 데 시간이 점점 더 오래 걸린다고 하더군요. 때로는 10,000개의 기록을 가져오는 데 30분도 넘게 걸립니다. 개선할 수 있는 방법이 있는지 알아보고 싶습니다. 속도.
잠시 생각해보니 데이터베이스 구조는 매우 간단합니다. 한 필드에는 전화번호가 저장되고 다른 필드에는 카테고리가 저장됩니다. , e 등은 전화가 걸렸음을 나타냅니다. 이 전화는 전화가 걸리지 않았습니다. 이 전화는 전화가 걸리지 않았습니다.
■전화번호가 포함된 txt 파일을 받으세요
■프로그램을 통해 txt 파일을 mysql로 가져오기
■가져올 때 txt의 전화번호가 mysql의 전화번호와 중복되는지 확인하세요. 중복되지 않으면 직접 새 레코드를 삽입하세요. 카테고리에 따라 업데이트가 필요합니다. 전화번호가 속해있습니다.
txt의 각 전화번호를 가져올 때 비교해야 하기 때문에 프로그램은 확실히 시간이 걸릴 것입니다. 이 기사의 제목은 쓰기 속도를 최적화하기 위한 것이므로 이 이유는 먼저 제쳐두겠습니다. 프로그램 기록이 남을까요? 위의 논리에서 우리는 데이터베이스를 일치시킬 때 레코드가 없을 때 데이터베이스에 대한 쓰기 작업이 발생한다는 것을 알고 있습니다(물론 업데이트도 계산되지만 여기서는 삽입만 논의됩니다). 그런 다음 위의 논리를 코드로 변환합니다. 대략 다음과 같습니다.