일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 스프링di
- 스프링시큐리티
- open-session-in-view
- 자바 필터
- Atomicity
- 생성자주입
- IOC
- kotlin ::
- 기능적 요구사항
- 스프링 시큐리티 설정
- 도커 이미지 빌드
- kotlin 리팩터링
- 정적팩토리메서드
- 스프링
- ioc컨테이너
- 그래프큐엘
- 비기능적 요구사항
- 소프트웨어의 품격
- Spring
- method refetence
- 토비의 스프링
- 동적파라미터
- 스프링부트 도커
- 스프링 포매터
- spring formatter
- 수정자주입
- java predicate
- fetch join
- jpa no session
- jpa lazy
Archives
- Today
- Total
공부기록
[MySQL] InnoDB와 MyISAM 차이 (트랜잭션) 본문
반응형
가장 큰 차이는 트랜잭션의 유무가 아닌가 싶다.
직접 테스트해보고 확인한 결과를 기록한다.
create table tab_myisam (
fdpk int not null,
primary key(fdpk)
)engine=MyISAM;
create table tab_innodb (
fdpk int not null,
primary key(fdpk)
)engine=InnoDB;
insert into tab_myisam (fdpk) values (3);
insert into tab_innodb (fdpk) values (3);
- tab_myisam과 tab_innodb를 생성했다. 스토리지엔진은 이름에 따라 각각 MyISAM과 InnoDB로 설정해줬다.
- 값을 넣어준다. 두 테이블 모두 fdpk 라는 컬럼에 3 이라는 값을 넣어줬다. 이제 실험!
insert into tab_myisam (fdpk) values(1), (2), (3);
insert into tab_innodb (fdpk) values(1), (2), (3);
- fdpk에 1, 2, 3을 넣는다.
- 우리가 예상하기로는 1, 2를 넣고 3을 넣는 순간 unique 제약 조건에 걸려서 모두 롤백되어야 한다.
- myisam엔진을 쓰는 테이블인 tab_myisam을 select 해보면, (select * from tab_myisam)
1,2,3 모두 값이 들어가있다. 트랜잭션을 지원하지 않기 때문! - 그에 반해 innodb 엔진을 쓰는 테이블인 tab_innodb를 select해보면, (select * from tab_innodb)
처음에 값을 넣어준 3 외에는 없는 걸로 나온다. 트랜잭션을 지원하기 때문이다!
```
반응형
'Computer Science > DB' 카테고리의 다른 글
[ACID] Atomicity - 원자성 (0) | 2024.02.28 |
---|---|
트랜잭션 격리 수준(isolation level) (0) | 2020.07.14 |
INNER JOIN (0) | 2019.12.07 |
UNION (0) | 2019.12.07 |
GROUP BY (0) | 2019.12.07 |