MySQL 서버는 사람의 머리 역할을 담당하는 MySQL 엔진과손발 역할을 담당하는 스토리지 엔진으로 구분됨손과 발의 역할을 담당하는 스토리지 엔진은 핸들러 API를 만족하면 누구든지 스토리지 엔진을 구현해서 MySQL 서버에 추가해서 사용할 수 있다.MySQL 엔진과
MySQL 서버가 시작되거나 종료될 때는 MySQL 서버(InnoDB 스토리지 엔진)의 버퍼 풀 내용을 백업하고 복구하는 과정이 내부적으로 실행된다. 실제 버퍼 풀의 내용을 백업하는 것이 아니라, 버퍼 풀에 적재돼 있던 데이터 파일의 데이터 페이지에 대한 메타 정보를
MySQL의 동시성에 영향을 미치는 잠금과 트랜잭션, 트랜잭션의 격리수준을 살펴보려한다.트랜잭션은 작업의 완전성을 보장해 주는 것이다.즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나, 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상(Partia
MySQL에서 사용되는 잠금은 크게 스토리지 엔진 레벨과 MySQL 엔진 레벨로 나눌 수 있다.스토리지 엔진 레벨의 잠금은 스토리지 엔진 간 상호 영향을 미치지 않는다MySQL 엔진 레벨의 잠금은 모든 스토리지 엔진에 영향을 미친다글로벌 락은 FLUSH TABLES W
여러 트랜잭션이 동시에 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지를 결정하는 것READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE 4가지로 나뉜다DI
인덱스를 살펴보기 전 해당 인덱스 장에서 자주 언급될 랜덤 I/O, 순차 I/O와 같은 디스크 읽기 방식을 먼저 간단히 알아보고 인덱스를 살펴보려한다. 컴퓨터의 CPU나 메모리처럼 전기적 특성을 띤 장치의 성능은 짧은 시간 동안 매우 빠른 속도로 발전했지만 디스크 같