컴퓨터의 CPU나 메모리처럼 전기적 특성을 띤 장치의 성능은 매우 빠른 속도로 발전했지만 디스크 같은 기계식 장치의 성능은 상당히 제한적으로 발전했다. 비록 최근 SSD가 많이 활용되고 있지만 여전히 컴퓨터에서 가장 느린 부분이라는 점은 변함이 없다. 이 때문에 데이터
일반적인 웹 서비스에서 페이징은 매우 흔하게 사용되는 기능이다. 요 근래까지는 페이징 성능 최적화의 필요성을 그다지 느끼지 못하였는데, 최근 5000만 row에 달하는 전체 회원을 대상으로 하는 배치를 작성하는 업무를 수행하며 페이징 최적화의 필요성을 느끼게 되었다.
실행 계획 분석 MySQL에서는 쿼리 앞에 EXPAIN 키워드를 붙여서 실행하면 해당 쿼리를 어떤 방식으로 수행할 것인지에 대한 정보를 출력해준다. 실행 계획에 표시되는 각 칼럼의 의미는 여러 정보를 전달하며 해당 정보를 해석할 수 있는 능력이 필요하다. 1. ID
5. TYPE 칼럼 쿼리의 실행계획에서 TYPE 이후의 칼럼은 MYSQL 서버가 각 테이블의 레코드를 어떤 방식으로 읽었는지를 나타낸다(ACCESS TYPE). 여기서 방식이라하면, 인덱스를 사용해 읽었는지, 테이블을 처음부터 끝까지 읽는 풀테이블 스캔으로 읽었는지 등
트랜잭션의 격리 수준이랑 여러 트랜잭션이 동시에 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지를 결정하는 것이다.격리 수준은 크게 READ UNCOMMITED, READ COMMITED, REPEATABLE READ