2011-11-11 2 views
0

고객 유형이 중간 인 고객 유형이 있습니다.많은 DB 엔진이 MYSQL에서 사용할 수 있습니까?

고객은 많은 품목을 구입할 수 있으며이 품목은 customeriditemid 인 두 개의 열만있는 "중간"표에 저장됩니다.

현재 모든 테이블에 myisam을 사용하고 있습니다.

이 구조에서 중간 테이블에 Innodb를 사용하는 것이 좋습니까?

답변

1
나는이 경우 이노을 선호

이유는

는 본질적으로 관계 제약의 도움으로 그들을 담당하기 때문에 데이터 무결성에 우선 순위를 제공 이노 사용해야

및 거래. 쓰기 수준이 높은 (삽입, 업데이트) 테이블은 행 수준의 잠금을 사용하고 삽입되거나 업데이트되는 동일한 행에 대한 변경 내용 만 유지하므로 더 빠릅니다.

동안,

의 MyISAM 따라서, 초보자를위한 더 나은 디자인하고 만드는 간단하다. 테이블 간의 외부 관계에 대해 걱정할 필요가 없습니다. 더 간단한 구조 덕분에 전체적으로 InnoDB보다 빠르며 따라서 서버 리소스 비용이 훨씬 적습니다. 전체 텍스트 인덱싱. 특히 읽기 집약적 인 (선택) 테이블에 적합합니다.

비교는 매우 간단합니다. InnoDB는 빈번한 삽입과 갱신이 필요한 데이터가 중요한 상황에 더 적합하다. 반면에 MyISAM은 데이터 무결성에 크게 의존하지 않고 대부분 데이터를 선택하고 표시하는 애플리케이션으로 더 잘 수행됩니다.

희망이 도움이됩니다.

0

INNODB는 계단식 삭제를 포함하여 foreign key constraints을 지원합니다 (교차 표에서 매우이 될 수 있음).

계단식 삭제 (간단히 말하면)는 스키마가 자체적으로 정리할 수 있도록합니다. 당신의 접합 테이블 계단식 삭제와 외래 키 제약 조건을 사용하고이 중 하나 customer 또는 item 기록을 제거하는 경우가 고아가되지 않도록

, 일치하는 middle 기록은 삭제됩니다.

확실히 INNODB을 권하고 싶습니다

+0

계단식 삭제를 빠르게 설명 하시겠습니까? – David19801

+0

@ David19801 업데이트 된 답변보기 – Phil

0

Innodb은 멋진 foregin-keys를 정의하게합니다.

거기에서 당신은 몇 가지 기능을 가지고 있습니다 :

  • foregin - 키가 너무 datas를 따라/업데이트를 삭제할 수 있습니다.
  • foregin-keys는 존재하는 경우 삭제/업데이트를 거부 할 수 있습니다.

일반적으로 foregin-keys는 일찍 결정합니다. foregin-key에는 추가 코드 제한이 필요합니다. 즉, 고객이나 항목없이 중간을 삽입 할 수 없을 수도 있습니다.

관련 문제