문제

다음과 같은 질문이 있습니다. 여러 수십 개의 작은 조회 테이블을 사용하여 웹 응용 프로그램을 디자인하고 있습니다.이 테이블은 3 개의 열 (ID, 이름, 설명) 및 두 개의 행 (대부분 50 개 미만, 최대 450 개 미만)을 포함합니다. .

이 조회 테이블은 거의 변경되지 않을 것으로 예상됩니다 (수년 내에 한 번 변경되는 표준에서 왔습니다).

에만 사용됩니다.

  • HTML에서 채우기 옵션
  • 보고서의 다른 레코드에 결합

이 표 99 %에 대한 SELECT 문장이있을 것이지만 꽤 많은 사람들이있을 것입니다.

어떤 데이터베이스 엔진이 가장 효율적이지 않을 것입니까?

여기에 나의 고려 사항이 있습니다 :

메모리

  • 프로 : 매우 빠르게
  • CON : 서버가 충돌하면 모든 데이터가 손실되고 다시 작성해야합니다
  • con : 외래 키를 지원하지 않습니다

압축 myisam

  • 프로 : 빠른
  • con : 외래 키를 지원하지 않습니다

InnoDB

  • PRO : 외래 키 지원

InnoDB 과 다른 것을 사용하는 데 중요한 이점이 있는지 여부는 - 성능 현명

감사, Zbynek

도움이 되었습니까?

해결책

2011 년 8 월에 유사한 질문에 답했습니다 :

MySQL과 어떤 스토리지 엔진에 대해 묻고 있기 때문에. 솔직히 말하자면, MyIsam이 선택할 때 innodb를 능가 할 수있을 때 희귀 한 경우가 있기 때문에 말하기가 어렵습니다.

여기 에이 논쟁에 대한 나의 과거 게시물 중 일부가 있습니다

지금 당장 묻는 메시지 : 왜 내가 InnoDB를 통해 myisam을 호의를 베풀 것입니까?

이 다이어그램을 살펴보십시오 (Vadim Tkachenko, Percona CTO에 의해 만들어진)

InnoDB 아키텍처

myISAM은 인덱스를 캐시하고 테이블에는 2 개의 인덱스가 있습니다 (ID의 기본 키와 이름 인덱스). 반면에 InnoDB는 InnoDB 버퍼 풀이 주기적으로 16K 페이지를로드하고 해제 해야하는 경우 특히 수용 할 수있는 움직이는 부품이 너무 많습니다.

공정하게, 당신은 실험을해야합니다.

이렇게하면 데이터 집합에 대한 스토리지 엔진 선택에 대한 최상의 평가가 제공됩니다.

시도를주십시오 !!!

다른 팁

  • "압축 된 myisam"- 그게 뭐야? 어쩌면 "아카이브"아마도?
  • 압축은 필요하지 않습니다. 테이블이 너무 작고 빠르게 완전히 캐시 될 것입니다.
  • FOREIGN KEYS - 왜? 디버깅 코드를 가지고 있지 않습니까? 검사 할 매달려있는 것들이 없을 것입니다.
  • MEMORY는 서버를 불리고 테이블에 대한 업데이트가 실행될 때마다 실행할 때마다 실행되는 'Reload'코드를 작성하는 경우 을 씁니다.
  • MEMORY MyISAM - 그게 오래된 Wive의 이야기입니다. ROW_FORMAT=FIXEDDYNAMIC를 사용하십시오.
  • InnoDB의 "Clustered"VARCHARs는 당신의 목적을 위해 myisam보다 조금 더 빨리 조회를합니다.
  • 조회 테이블이 눈에 띄는 둔화를 일으키는 알고 있습니까? 나는 그들이 진지하게 의심한다.
  • do not PRIMARY KEYFLOATs와 같은 "연속적인"값에 대한 조회 테이블을 사용하십시오.

FKS가없는 InnoDB에 투표합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 dba.stackexchange
scroll top