본문 바로가기

분류 전체보기250

14.Redis, Key 관리 명령에 대해서 알아볼께요.^^ Key 관리 명령에 대해서... 레디스에 저장된 Key를 관리하는 명령은 아래와 같다. 삭제 만료 목록조회 데이터형 조회 Key 이동 기타 등등 Key 삭제와 변경 del Redis 에 저장된 Key와 데이터를 삭제하고, 삭제된 Key의 개수를 돌려줌. 만약 Key가 존재하지 않으면 0을 반환함 명령) del [key1] [key2]... 응답) , 삭제된 Key의 수 rename 주어진 Key의 이름을 변경하고 변경결과를 돌려줌. 만약 변경할 Key가 이미 존재하면 0을 반환함. 명령) rename [key] [new key] 응답) 성공하면 OK, 실패하면 ERR Key 만료처리 expire 지정된 Key 에 만료시간을 초(sec) 단위로 설정함. 단, 지정된 Key가 존재하지 않거나 설정에 실패하면.. 2024. 3. 19.
Real Mysql 8.0 : 옵티마이저 옵티마이저 쿼리를 최적으로 실행하기 위해 각 테이블의 데이터가 어떤 분포로 저장돼 있는지 통계 정보를 참조하며, 그러한 기본 데이터를 비교해 최적의 실행 계획을 수립한다. 우리들은 실행 계획의 이해해야 실행 계획의 불합리한 부분, 더 최적화된 방법으로 실행 계획을 수립하도록 유도할 수 있습니다. 쿼리 실행 절차 1. SQL 파싱 사용자로부터 요청된 SQL문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리해서 파스 트리가 만들어짐 설명 : SQL문장이 문법적으로 잘못됐다면 이단계에서 걸러짐, MySQL서버는 SQL문장 그자체가 아니라 파스 트리를 이용해 쿼리를 실행 2. 최적화 및 실행 계획 수립 SQL의 파스 트리를 확인하면서 어떤 테이블부터 읽고 어떤 인덱스를 이용해 테이블을 읽을지 선.. 2024. 3. 11.
MySQL Query Cache은 무조건 좋을까? (Feat. query cache lock) MySQL에서는 한 SELECT 쿼리의 결과를 캐싱해주는 Query Cache 라는 최적화 기능을 제공해주고 있다. (하지만, 5.7.20 버전부터 deprecate되었고, 8.0 버전에서부터는 제거되었다고 한다. - 참고 글) 그렇다면, Query Cache은 항상 사용하면 좋은 것일까? (모든 캐싱이 그러하듯, 당연히 아닐 듯 하다.) 실습과 함께 한번 확인해보자. 실습 준비 MySQL 5.7.20 Docker Container 환경에서 실습하였습니다. 참고로 query_cache_type 의 default 값은 OFF이다. 이 값은 MySQL을 구동한 이후에는 변경할 수 없으므로, 아래와 같이 설정파일을 변경한 후, 한번 재기동해주어야 한다. [mysqld] query_cache_type = 2 #.. 2024. 3. 11.
[Real MySQL 8.0] 옵티마이저의 기본 데이터 처리 1 / 2 요청된 쿼리는 같은 결과를 반환하지만, 내부적으로 그 결과를 어떻게 만들어낼 것인지에 대한 방법은 매우 다양하다. 따라서 어떤 방법이 최적이고 최소의 비용이 소모되는지 결정해야 한다. MySQL에서는 테이블의 데이터가 어떤 분포로 저장돼 있는지 통계 정보를 참조해 최적의 실행 계획을 수립한다. 대부분의 DBMS에서도 옵티마이저가 이러한 기능을 담당하고 있다. 쿼리 실행 절차 쿼리가 실행되는 과정은 크게 세 단계로 나눌 수 있다. 요청된 SQL 문장을 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리(파스 트리) SQL 파싱 단계로 SQL 파서 모듈로 처리 SQL 문법 오류(Syntax Error)가 이 단계에서 걸러짐 SQL 파스 트리 생성 SQL의 파싱 정보(파스 트리)를 확인해 어떤 테이블을 읽.. 2024. 3. 11.
[SQLD] 1-2 데이터 모델링과 성능 제1절 성능 데이터 모델링의 개요 성능 저하 요인 1) 데이터 모델 구조 2) 데이터가 대용량이 되는 경우 3) 인덱스 특성을 충분히 고려하지 않고 인덱스 생성하는 경우 성능 => 보통 데이터조회의 성능을 의미 - 데이터입력/수정/삭제는 일시적이며 빈번하지 않고 단건 처리가 많으나 데이터조회의 경우 반복적이고 빈번하며 여러 건을 처리하는 경우가 많음. - 일반적으로 트랜잭션의 성격이 조회의 패턴이나 업무에 따라서는 입력/수정/삭제의 성능이 중요한 경우도 존재 성능 데이터 모델링 - DB 성능향상 목적으로 설계단계의 데이터 모델링 때부터 정규화,반정규화,테이블통합, 테이블분할,조인구조,PK,FK등 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 수행시점 - 분석/설계 단계 => 성능저하에 .. 2024. 3. 11.
(DB실무) Part3-데이터 모델과 성능 보호되어 있는 글 입니다. 2024. 3. 6.