반응형

데이터 베이스 42

[Postgresql] Postgres 의 analyze

오늘 회사에서 DBA 분들의 이야기를 듣다가 Postgres에 analyze 기능에 대해 듣게됨 1. Analyze 는 포스트그리가 데이터의 수량을 자동으로 업데이트 하는 기능 2. 즉, 포스트그리 자체에서 수량 및 기타 메타 데이터를 최신화하기 위해서 사용하는 기능 3. 이 Analyze 가 제대로 안될 경우에는 수동으로 재실행시킬 수 있음 4. 제대로 안되었을 경우에는 100만건이 있는데 1000만건이 있다고 할 수 있고 5. 10초가 걸리던 쿼리가 100초가 걸릴수도 있으며, 6. 용량에 원래는 20GB 인데 100GB 로 잘못 인지를 하고 작업을 할 수 있다.

데이터 베이스 2024.01.16

[SQL] 카테시안 곱

1. 정의 => union(교집합)/ interction(합집합) - 테이블 2개가 서로 join을 할 때, 두 Table 사이에 유효 join 조건을 적지 않았따면, 해당 테이블에 대한 모든 데이터를 전부 결합하여 Table에 존재하는 행 갯수를 곱한 만큼의 결과값이 반환되는 것이다. => Table A 의 row : 3 개 / Table B 의 row : 3 개 => 카테시안 곱 발생시 : 9개의 Row 출력 2. 원인 카테시안 곱은 join 쿼리 중에 WHERE 절에 기술하는 join 조건이 잘못 기술되었거나 아예 없을 경우 발생하는 현상 3. 예시 TABLE Student Student_ID Student_NM Student_Total_Score 1 AAA-001 학생1 97 2 AAA-002 학..

RDB 공유 잠금 기능

1. 개요 오늘 팀 단톡방에 좋은 질문이 올라와 읽던 중 공유 2. 질문 - 공유 잠금 기능이 MSSQL 만의 기능인가? -> "MSSQL 은 기본적으로 SELECT 시 공유잠금(S Lock) 이 걸린다. 이는 MSSQL 의 기본 격리수준(Isolation Level) 이 Read Committed 이기 때문이다. 즉, DML(INSERT, UPDATE, DELETE) 작업중인 ROW 또는 TABLE 에 SELECT 할 경우, 해당 작업이 끝나야 SELECT 할 수 있다는 의미이다. 3. 답변 - DBMS 마다 lock 정책이 다르지만, 공유잠금이란 개념은 모두 존재 - MSSQL 은 read commited 정책을 도입함 - 아래 내용은 read lock 이 왜 생기게 되었는지, 이를 해결하기 위해선 ..

[SQL]카테시안 조인을 잘 설명한 사이트 기록

카테시안 조인은 A 집합의 데이터 각각이 B 집합의 모든 데이터와 조인되는 것을 뜻한다고 한다. SQL BOOSTER에서는 아래 그림을 사용해 카테시안 조인을 설명할 수 있으며, CUS_GD 집합 두 건이 ITM_TP 집합 네 건과 모두 조인 처리되어, 3번과 같이 총 8건의 데이터가 만들어진다. 요약하기위해 참고한 사이트이다. 이 사이트가 나에게는 이해하기 쉽게 카테시안 조인에 대해 정리를 잘 한 것 같다 https://sweetquant.tistory.com/323 카테시안 조인 이해하기 지난 글에서는 셀프조인에 대해 살펴봤습니다. https://sweetquant.tistory.com/322 셀프 조인 이해하기 안녕하세요. 오늘은 셀프 조인(Self Join)에 대해 정말 간단하게 설명해볼까 합니다..

[SQL] WSL postgresql 설치 방법

--> 마이크로 소프트 docs 에서 postgresql 설치하는 부분만 가져왔다 PostgreSQL 설치 WSL에 PostgreSQL을 설치하려면(예: Ubuntu: WSL 터미널을 엽니다(예: Ubuntu). Ubuntu 패키지를 업데이트합니다. sudo apt update 패키지가 업데이트된 후에는 PostgreSQL(몇 가지 유용한 유틸리티가 포함된 -contrib 패키지)을 설치합니다. sudo apt install postgresql postgresql-contrib 설치를 확인하고 버전 번호(psql --version)를 가져옵니다. PostgreSQL이 설치되면 다음 세 가지 명령을 알고 있어야 합니다. sudo service postgresql status: 데이터베이스의 상태 확인 su..

[Sql] Unique 와 Distinct 의 차이점

1. 개요 distinct 와 unique 차이를 간단하게 기록해 놓자면 1) distinct - select 에 사용 - select 시에 출력되는 row 들의 중복된 값을 제거한 나머지 값들을 출력 2) unique - create table 을 할 때 사용 - 테이블 내에서 unique가 적용된 특정 컬럼의 중복된 값이 insert 되지 않도록 설정 - unique 가 설정된 컬럼에서 중복된 값이 들어갈 경우 error 가 뜨며 값의 유일성 유지 2. 참고 링크 https://learnsql.com/blog/unique-vs-distinct/ What’s the Difference Between UNIQUE and DISTINCT in SQL? The words UNIQUE and DISTINCT ..

[ DB ] 데이터 베이스 이중화 - postgresql 를 예제로

이번 프로젝트에서 운영하는 데이터 베이스가 이중화로 되어 있어 이중화에 대한 개념 및 참고할만한 링크를 기록한다. 1. DB 이중화란 '기준이 되는 데이터베이스(Master)의 변경된 데이터를 물리적으로 떨어진 각각의 데이터베이스(Slave)에 동일하게 유지하여 관리하는 것' 실서비스에서는 데이터의 유실을 방지하거나 무중단 서비스를 위해서는 이중화가 필수 2. 참고 링크 https://velog.io/@jwpark06/Postgresql-%EC%9D%B4%EC%A4%91%ED%99%94%ED%95%98%EA%B8%B0-Streaming-%EB%B0%A9%EC%8B%9D Postgresql 이중화하기 먼저, DB 이중화에 대해 알아보겠습니다. DB 이중화란 '기준이 되는 데이터베이스(Master)의 변경된..

[Postgresql] 데이터 import 하는 법

데이터를 import 하는 법에는 여러가지가 있지만. 최근 회사에서 pgadmin 을 통해서 csv 파일을 import 하는 작업을 했다. 추후 동일한 작업을 하거나 다른 방법으로 postgresql 에 데이터를 넣을 경우에 대비하여 아래 링크를 걸어두고 참고해야 겠다. 참고 링크 https://ysyblog.tistory.com/143 [PostgreSQL] CSV File를 Table에 삽입(Import)하기. CSV파일을 PostgreSQL에 삽입하는 방법은 다음과 같습니다. 먼저 데이터를 다운로드합니다. 그리고 데이터를 넣을 데이블을 만들어줍니다. DROP TABLE IF EXISTS sale_data; CREATE TABLE sale_data ( order_id S.. ysyblog.tistor..

[ 쿼리문 ] MySQL 오늘 날짜 데이터 조회

1. 개요 쿼리문으로 특정 날짜 데이터를 조회하는 방법을 기록한다. 방법에는 몇가지가 있는 것 같다 2. 쿼리문 1) curdate( ) - 오늘 날짜 출력 select curdate() curdate( ) 함수를 이용해 아래와 같이 오늘 날짜 출력 가능 2) date_format(insert_date, '%Y-%m-%d' ) - 특정 날짜 출력 select date_format(created_at, '%Y-%m-%d') from table_name; date_format( ) 함수를 이용해 아래와 같이 특정 날짜 출력 가능

반응형