잠금: 동시성을 제어하기 위함unless: 하나의 데이터를 여러 커넥션에서 동시에 변경 -> 레코드의 값 예측 불가 상태여러 커넥션에서 동시에 동일한 자원 요청 시, 한 시점에는 하나의 커넥션만 변경할 수 있도록 해주는 역할트랜잭션: 데이터의 정합성을 보장하기 위함트랜
MySQL 격리수준동시에 처리되는 여러 트랜잭션에 대해서, 변경/조회 데이터에 대한 수준아래로 갈수록 고립정도 심화READ UNCOMMITED (DIRTY READ)각 트랜잭션에서의 COMMIT/ROLLBACK 여부에 관계 없이 다른 트랜잭션에 노출됨이후 트랜잭션이 실
데이터베이스 성능 튜닝 ~ 디스크 I/O 줄이기 \-> DB 서버에서는 항상 디스크 장치가 병목 지점SSD는 데이터 저장용 플래터를 제거하고 플래시 메모리를 장착 -> 원판의 기계적 회전이 사라져 HDD보다 빠름디스크의 헤더를 움직이지 않고 한번에 많은 데이터를 읽는
해시 인덱스 동등 비교 검색에는 최적화 but 범위 검색/정렬된 결과를 가져오는데에는 사용 불가 주로 메모리 기반 테이블에 구현 해시 값을 기반으로 키를 사용하므로, 실제 키 값과는 관계없이 인덱스 크기가 작고 검색이 빠름 키 칼럼의 값이 길어도 해시 인덱스에 저장되는 값은 해시 값이므로 4~8바이트 수준 trade-off 해시...
필드가 어떤 캐릭터들을 담을수 있는지예를들어 utf8은 이모지를 못담고, utf8mb4는 이모지를 담을수 있다. (4byte까지 지원하기 때문)콜레이션은 mysql 내에서 등호/부등호 등 비교 로직을 태울때 어떤 방식으로 태울지예를들어 where column_a = "