2012-05-23 2 views
1

가능한 중복 :
Maximum Number of Tables in MySQL하나의 데이터베이스에서 테이블의 최대 수

하나의 데이터베이스에 포함 할 테이블의 권장 수 있습니다. 또한 응용 프로그램에서 둘 이상의 열린 연결을 갖는 데 단점이 있습니다.

응용 프로그램이 현재 많은 테이블에 액세스 중이거나 많은 테이블에 액세스 할 가능성이 있습니다. 필자는 테이블을 다른 데이터베이스로 분할 할 생각을했습니다. 경험이 없으므로 누군가가 올바른 방향으로 나를 가리키기를 바랍니다.

+1

분명히 속는 사람 & 그 질문에 대한 대답은 여전히 ​​있습니다 - 당신이 너무 많은 테이블을 가지고 있다고 우려한다면 아마 뭔가 잘못하고있을 것입니다. –

답변

1

모든 가능성 있음 테이블을 별도의 데이터베이스로 분할하기위한 필요성은 필요에 따라 처리하는 것이 가장 좋습니다.

많은 테이블을 얼마나 많이 말합니까? 100, 200, 1000 - 어쩌면 마지막으로 별도의 데이터베이스가 필요할 수도 있습니다. 단, 확실한 이점이있는 경우에만 가능합니다.

내 제안은 왜 그렇게 많은 테이블이 필요한지 살펴 보는 것이고, 처음에는 적은 테이블과 행으로 할 수 있다는 것입니다.

+0

100 미만이지만 100에 도달 할 가능성이 있습니다. 이전에 그런 숫자를 한 번도 범하지 않았기 때문에 걱정했습니다. – sality

+0

가치가있는 것을 위해, 저는 현재 Wordpress Multisite 설치를 관리하고 약 7,000 개의 사이트가 있습니다. 이는 63,000 개의 테이블과 같습니다. 이와 같은 대형 네트워크를 관리하는 데는 고유 한 문제가 있지만 확실히 가능합니다. 그럼에도 불구하고 조언은 여전히 ​​건전합니다. 테이블을 더 추가하기 전에 데이터베이스가 너무 많이 부풀어 오르지 않는 대체 아키텍처가 있는지 고려해야합니다. – rinogo

1

MyISAM을 사용하는 경우 최대 테이블 수는 운영 체제/파일 시스템에 의해 제한됩니다. 그것은 테이블이 파일 시스템에 별도의 파일로 저장되기 때문에 OS가 디렉토리에서 허용하는 최대 파일 수입니다.

InnoDB의 경우 한계는 4 billion 인 것 같습니다.

열려있는 연결이 여러 개인 장단점이 있습니다. 너는 무엇을하려고하는거야? 명심할 것은 MySQL 서버가 수용 할 수있는 연결 수가 제한된다는 것입니다.

1

단일 연결의 모든 쿼리는 일련 번호가 지정됩니다. 이는 특히 한 명령에서 이전 명령이 완료되어야하는 경우 특히 프로그래밍을 더 단순하게 만듭니다. 두 개 이상의 연결을 추가하면 같은 상황에서 경쟁 조건이 발생할 수 있습니다.

MySQL은 중첩 된 트랜잭션을 지원하지 않으므로 트랜잭션 내에서 트랜잭션을 완료하기 위해 다른 연결을 만들어야하는 경우가 있습니다.

관련 문제