사용자 도구

사이트 도구


database:mysql:sequence

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
마지막 판 양쪽 다음 판
database:mysql:sequence [2015/11/11 14:14]
kwon37xi [InnoDB 기반 Sequence]
database:mysql:sequence [2015/11/11 14:24]
kwon37xi [MyISAM 기반 Sequence]
줄 27: 줄 27:
 </code> </code>
  
-**MyISAM은 Bakcup/Recovery가 힘들다고** 따라서 실전에서는 시퀀스 전용 스키마로 독립시키지 않는한 사용하기 힘들다.+**MyISAM과 InnoDB를 섞어서 사용할 경우 Bakcup/Recovery에 문제가 발생할 수 있다고 한다.** 따라서 실전에서는 시퀀스 전용 스키마로 독립시키지 않는한 사용하기 힘들다.
  
 +  * [[https://www.percona.com/blog/2008/04/02/stored-function-to-generate-sequences/|Stored Function to generate Sequences]] 참조.
 ===== InnoDB 기반 Sequence ===== ===== InnoDB 기반 Sequence =====
   * InnoDB 기반 시퀀스는 **시퀀스마다 별도의 테이블**을 만들고 ''**AUTO_INCREMENT PRIMARY KEY**'' 컬럼을 두고 계속해서 ''null''을 insert 하고 ''SELECT LAST_INSERT_ID()''를 리턴하면 된다.   * InnoDB 기반 시퀀스는 **시퀀스마다 별도의 테이블**을 만들고 ''**AUTO_INCREMENT PRIMARY KEY**'' 컬럼을 두고 계속해서 ''null''을 insert 하고 ''SELECT LAST_INSERT_ID()''를 리턴하면 된다.
줄 38: 줄 39:
   * Storage Procedure가 필요하다.   * Storage Procedure가 필요하다.
   * ISOLATION Level ([[database:mysql:innodb|MySQL InnoDB]] 참조)을 ''REPEATABLE_READ'' 이상으로 조정하지 않으면 서로 다른 트랜잭션에도 동일 값을 리턴하는 사태가 발생할 수 있다.   * ISOLATION Level ([[database:mysql:innodb|MySQL InnoDB]] 참조)을 ''REPEATABLE_READ'' 이상으로 조정하지 않으면 서로 다른 트랜잭션에도 동일 값을 리턴하는 사태가 발생할 수 있다.
 +  * **Transaction 이 길어질 경우에 무슨 사태가 발생하는지 철저한 테스트가 필요하다.**
database/mysql/sequence.txt · 마지막으로 수정됨: 2015/12/13 00:58 저자 kwon37xi