목록DataBase (3)
algoqna
Nested loops는 결합 알고리즘의 일종으로, 결합의 기본이 되는 알고리즘입니다. 이에 대해 헷갈리는 점이 있어, 확실히 정리하고 넘어가려 합니다. Nested Loops 영어 뜻 그대로, 중첩 루프라고 부르는 알고리즘입니다. SQL에서 결합은 한 번에 두개의 테이블만 결합하므로, 본질적으로는 이중 반복과 같은 의미로 나타납니다. 두 테이블을 결합하기 때문에, 기준이 되는 테이블과 그렇지 않은 테이블을 구분할 수 있습니다. 이를 Driving, Driven 또는 Inner, Outer의 개념으로 분류합니다. R(A) * R(B) = R(B) * R(A)? 드라이빙 테이블의 레코드를 R(A), 드리븐 테이블의 레코드를 R(B)라고 하겠습니다. Nested Loops에서 일반적으로 구동 테이블(Driv..

- 해당 내용은 Real MySQL 8.0 책을 읽고, 그동안 헷갈렸던 것들에 대해서 정리한 내용입니다. - MySQL 버전 8.0 이전 버전에 대해서는 올바르지 않을 수 있습니다. 쿼리의 실행 계획을 확인하는 키워드로 EXPLAIN, EXPLAIN ANALYZE를 이용할 수 있습니다. 실행 계획은 옵티마이저가 선택한 계획이며, 아래와 같은 정보로 나타납니다. 해당 내용에서는 type에 대해서 초점을 맞춥니다. type 칼럼 쿼리의 실행 계획에서 MySQL 서버가 각 테이블의 레코드를 어떤 방식으로 읽었는지 나타냅니다. 방식이라는 것은 인덱스를 사용했는지, 풀 테이블 스캔을 사용했는지를 의미합니다. 쿼리를 튜닝할 때 인덱스의 효율적 사용을 판단하는 지표로 type은 반드시 체크해야합니다. 1. syste..

성능을 측정하는 지표시스템 세계에서의 성능은 2가지의 지표에 의해 측정된다. 한 가지는 처리 시간(또는 응답 시간)이라 불리는 지표이다. 이 지표는 '웹사이트에 결과를 표시하는데 5초가 걸린다' 처럼 특정 처리의 시작 ~ 종료까지 걸린 시간을 나타낸다. 다른 한가지는 처리율(Throughput)이다. 이는 특정 처리를 단위 시간에 몇 건 처리 가능한가를 의미하며, 흔히 사용하는 TPS(Transaction Per Second)가 50이라고 하면, 초당 트랜잭션을 50건 처리 가능하다는 의미이고 50TPS가 시스템의 처리율이 된다. 처리율이 성능 지표에서 중요한 이유시스템의 자원 용량(Resource Capacity)은 무한하지 않다. 처리율이 높다는 것은 CPU나 메모리같은 하드웨어 자원이 많이 필요하다..