추천: "PHP 비디오 튜토리얼"
1억 개의 주문 테이블을 5개의 테이블로 나눌 수 있으므로 각 테이블에는 2천만 개의 데이터만 공유됩니다. 특정 조건에 따라 테이블을 나누어야 한다는 사실이 밝혀졌는데, 여기서 테이블을 지역별로 나눌 수 있는데, 원하는 데이터를 찾기 위해 어떤 테이블로 이동할지 제어하는 미들웨어가 필요합니다.
미들웨어: 메인 테이블의 자동 증가 ID를 미들웨어로 사용합니다. (미들웨어에 적합한 필드는 무엇입니까? 고유해야 합니다.)
배포 방법은 무엇입니까? 기본 테이블에 삽입한 후 ID가 반환되고 이 ID와 테이블 수를 기반으로 모듈로가 취해지며 나머지 테이블에 데이터가 삽입됩니다.
참고: 하위 테이블의 ID는 메인 테이블의 ID와 일치해야 합니다.
앞으로는 삽입 작업만 메인 테이블을 사용하게 되며, 수정, 삭제, 읽기에는 메인 테이블을 사용할 필요가 없습니다
1. 메시지 큐란 무엇인가요?
메시지 전파 과정에서 메시지를 저장하는 컨테이너
2, 메시지 큐 생성의 역사적 이유
메시지 큐의 특징: 선입선출
먼저 실행할 SQL 문을 메시지 큐에 저장 삽입된 데이터베이스
Application: Sina에서 인스턴트 코멘트를 먼저 메시지 큐에 넣은 다음 예약된 작업
하위 테이블을 조작하여 수정
이 수정을 하면 메인 테이블과 하위 테이블의 데이터가 일치하지 않게 되는 문제가 발생합니다. 일관된?
수정이 완료된 후 메인 테이블의 데이터가 수정되어 Redis 큐에 저장됩니다
그런 다음 Linux 예약 작업 (contble) 루프에서 redis 대기열의 sql 문을 실행하고, 메인 테이블의 내용을 동기적으로 업데이트합니다
쿼리는 하위 테이블만 쿼리하면 됩니다. , 메인 테이블을 쿼리하지 마세요
삭제, 먼저 id를 기준으로 개체를 찾습니다. 하위 테이블을 삭제한 다음 삭제한 다음 sql 문을 푸시하여 전체 테이블 데이터를 메시지 대기열로 삭제합니다
그런 다음 총 테이블 데이터를 삭제하기 위해 예약 된 작업을 실행하여 예약 된 작업 :
mysql 분산 분기 라이브러리
참고: 데이터베이스를 운영한 후에는 데이터베이스 연결을 닫아야 합니다. 그렇지 않으면 mysql은 연결된 데이터베이스와 동일한 데이터베이스로 간주합니다.
여전히 데이터베이스 연결을 가져와야 합니다. 어떤 구성 파일을 로드할지 결정하는 모듈러스 어떤 데이터베이스
실행 대기열
정보를 편집한 후 캐시를 삭제해야 합니다. 그렇지 않으면 항상 캐시된 데이터를 읽게 됩니다. 수정된 데이터
위 내용은 MySQL과 결합된 PHP는 수천만 건의 데이터 처리를 실현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!