테이블 구조를 레이아웃하고 스토리지 엔진을 설정하는 방법에 대해 잘 알고 싶습니다.이 설정을위한 innodb와 myisam의 가장 좋은 조합은 무엇입니까?
테이블의 첫 번째 필드는 AUTO INCREMENT
인 정수 유형입니다. 필드 2 ~ 5는 약 95 % 읽기, 5 % 쓰기입니다 (쓰기는 INSERT
입니다.) 그러나 필드 6은 지속적으로 업데이트되며 약 50 %는 (SELECT
문)을 읽고 50 %는 씁니다 (10 % INSERT
90 % UPDATE
).)
난 그냥 테이블 http://dev.mysql.com/doc/refman/5.0/en/internal-locking.html로부터 제거 된 항목이없는 경우 자유롭게 잠금없이 MyISAM 테이블에 대한 동시 INSERT 및 SELECT 문을 혼합 할 수 읽어 보시기 바랍니다. 내가 테이블에서 행을 제거하는 계획은 없습니다.
테이블을 두 개의 다른 테이블로 나눌 것을 권장합니다. 첫 번째 테이블은 MYISAM으로 위에서부터 필드 1에서 5 (95 % 읽기, 5 % 쓰기)입니다. 두 번째 테이블은 innodb이고 두 개의 필드가 있습니다. 첫 번째 테이블은 첫 번째 테이블의 첫 번째 필드와 동일한 AUTO INCREMENT
이고 두 번째 필드는 지속적으로 업데이트되는 필드입니다 (50 % 쓰기 50 % 읽기).
서로 다른 테이블에 삽입 된 두 문은 차례대로 발생한다고 가정합니다. 드문 경우지만 첫 번째 INSERT 문은 통과하지만 두 번째 INSERT 문은 통과하지 않습니다. 각 테이블의 첫 번째 필드가 올바르게 서로 매핑되도록하려면 어떻게해야합니까?
가 명확히의 MyISAM, 표 (의 MyISAM) 및 표 2 대 이노을 명확히 것을 만들어 다른 게시물입니다 (innodb)는 "지속적으로 업데이트되는"칼럼을 공유 할 것인가? –
Hey Mike, 그들이 공유 할 유일한 열은 자동 증가 열입니다. 테이블 1과 테이블 2의 20 행은 서로 관계가 있어야합니다. – user784637
좋습니다, 그래서 table1.ever_changing_col! = table2.ever_changing_col. 내가 물어 보는 이유는, 열이 동일하지 않은 경우에도 linking_id를 공유하지만 tabl2.ever_changing_col이 table1을 보완한다는 것입니다. –