목록Tech/DB (4)
지나공 : 지식을 나누는 공간
Explain은 select, delete, insert, replace, update 연산에 대해 수행 가능하다.이 연산을 통해 MySQL은 옵티마이저로부터 어떻게 쿼리가 실행되는지 어떤 순서로 테이블들이 조인되는지를 볼 수 있다. Explain 결과 해석결과에 나오는 테이블은 MySQL 이 처리할 때 읽는 순서로 노출된다. 이 말은 MySQL이 첫 테이블로부터 row를 하나 읽고, 두번째 테이블로부터 이 row에 매핑된 row를 찾고, 세번째 테이블에서도 반복한다는 말이다. 모든 테이블이 처리되면, MySQL는 선택된 columns를 출력하고 일치하는 행이 더 있는 테이블을 찾을 때까지 테이블 list를 통해 백트래킹한다.idSQL 문이 수행되는 실행순서로, id 값이 작을수록 먼저 수행된거고 id ..
일반적으로 MySQL은 단일서버에서 운영되고 필요에 따라 여러 서버를 구축해서 샤딩할 수 있다. 하지만 자동 샤딩 기능은 없기 때문에 데이터가 커진다면 애플리케이션 레벨에서 수동으로 샤딩 로직을 구성해야 한다. 그런데 Vitess에선 이걸 자동으로 해준다. 마치 MySQL 을 쓰는 것처럼 클라이언트에서 사용하면 되고, 데이터만 확장해서 샤딩 구조를 사용할 수 있다. 즉 MySQL 호환 버전의 클러스터링 시스템이 vitess 라고 보면 된다. Vitess 란 컨테이너 환경에서 제공되는 확장과 관리가 용이한 MySQL 기반의 분산 데이터베이스.Scalable. Reliable. MySQL-compatible. Cloud-native. Database. docs 에서 말하는 주요 기능은 아래와 같다.built..
Query Explain Planhttps://www.mongodb.com/ko-kr/docs/rapid/tutorial/analyze-query-plan/explain result를 보고 query에 대한 아래 정보를 얻을 수 있다.쿼리 수행에 걸리는 시간쿼리가 인덱스를 사용하는지쿼리 수행을 위해 스캔되는 문서나 인덱스 키의 개수쿼리 성능에 대한 통계를 제공하는 메소드[cursor.explain("executionStats")] & [db.collection.explain("executionStats")]쿼리가 인덱스를 사용하는지 여부와 방법을 측정할 때 유용아래 document가 들어있다고 가정하자.{ "_id" : 1, "item" : "f1", type: "food", quantity: 500 }..
우테코의 테코톡에서 잘 설명해줘서 두고 두고 보려고 기록하는 글. Index와 DB Index인덱스는, 쉽게 찾아볼 수 있도록 일정한 순서에 따라 놓은 목록을 말한다. 현재 데이터가 아무 기준 없이 저장된 상태라면 뒤죽박죽이라서, 특정 키워드를 찾으려 하면 모든 데이터를 순차적으로 탐색해야 한다. 그러나 데이터가 특정 기준으로 정렬되어 있다면 검색을 빠르게 할 수 있다. DB 인덱스는, 데이터베이스 테이블에 대한 검색 성능을 향상시키는 자료구조로, WHERE절 등을 통해서 활용된다.이메일을 인덱스로 정한다면, 이메일 컬럼에 대한 값을 복사해서 이걸 abc 순으로 정렬한 데이터가 생긴다. 여기서"SELECT * FROM member WHERE email = 'ehl3288@naver.com'을 실행하면 e..