MySQL DB에서 일부 이상한 디자인을 발견했을 때 일부 데이터를 표시하는 PHP 스크립트를 실행하라는 요청을 받았습니다. 사용자 당 최대 2000 개의 레코드를 수집해야하는 연구를 수행하고 등록하는 각 사용자에 대해 새 테이블을 자동으로 작성합니다. 이 단계에서 예비 학습으로 약 30 개의 테이블이 있지만 실제 연구를 위해 3000 명의 사용자가 있어야합니다.MySQL 테이블 잠금
나는 하나의 테이블에 모든 것을 모으라고 제안하고 싶었지만 연구 기간 동안이 데이터베이스에 분당 약 1500 회의 INSERT가 있었기 때문에 나는이 질문을 먼저 여기에서 물어보고 싶었다. MySQL에서 테이블 잠금이 발생합니까? 그래서 분 당 1500 개의 INSERT와 최대 6,000,000 개의 레코드 또는 3000 개의 테이블 (분당 30 개의 INSERT 및 최대 2000 개의 레코드)을 가진 하나의 테이블입니까? 첫 번째 옵션을 제안하고자하지만 문제가 발생하지 않도록하고 싶습니다. InnoDB에는 행 수준의 잠금이 있습니다. 그러면 더 나은 성능을 하나의 테이블 옵션과 함께 사용할 수 있습니까?
질문을 반전하고 "왜 동일한 데이터를 저장하기 위해 여러 테이블을 만들까요?"라고 물어보십시오. 분명히 디스크 IO, 인덱싱 등은 동일합니다. 나는 그들이 그것이 myisam에서 테이블 잠금을 둘러 쌀 수있는 유일한 방법이라고 생각했는지 또는 그들이하는 일에 대한 단서가 없다고 생각합니다. 그것을 innodb로 뒤집어 뒤돌아 보지 마라. –