[Postgresql] Postgres 의 analyze
·
언어/데이터 베이스
오늘 회사에서 DBA 분들의 이야기를 듣다가 Postgres에 analyze 기능에 대해 듣게됨 1. Analyze 는 포스트그리가 데이터의 수량을 자동으로 업데이트 하는 기능 2. 즉, 포스트그리 자체에서 수량 및 기타 메타 데이터를 최신화하기 위해서 사용하는 기능 3. 이 Analyze 가 제대로 안될 경우에는 수동으로 재실행시킬 수 있음 4. 제대로 안되었을 경우에는 100만건이 있는데 1000만건이 있다고 할 수 있고 5. 10초가 걸리던 쿼리가 100초가 걸릴수도 있으며, 6. 용량에 원래는 20GB 인데 100GB 로 잘못 인지를 하고 작업을 할 수 있다.
[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)에 대해 정말 간단하게 설명해볼까 합니다..
[Python Study] 파이썬 모듈
·
언어/Python
여러 프로그램에서 썼던 편리한 함수를 각 프로그램에 정의를 복사하지 않고도 사용하고 싶을 수도 있다. 이런 것을 지원하기 위해, 파이썬은 정의들을 파일에 넣고 스크립트나 인터프리터의 대화형 모드에서 사용할 수 있는 방법을 제공합니다. 그런 파일을 모듈 이라고 부름 모듈로부터 정의들이 다른 모듈이나 메인 모듈로 임포트 될 수 있음 1. 파이썬 스트링 관련 모듈 2. 데이터 타입 관련 모듈 3. 수학 함수 및 기타 숫자 모듈 4. 인터넷 데이터 처리 모듈 5. 마크업 및 파일 형식 관련 모듈 5. 압축, 보관 및 자료보존 처리 함수형 모듈 6. 운영체제 및 런타임 관련 모듈 자세한 내용은 추후 아래 링크를 통해 스터디 진행할것 https://docs.python.org/ko/3/tutorial/module..
[Python] python 에서 parquet 타입을 열려고 할때
·
언어/Python
1. 원인 - 파이썬에서 parquet 파일을 열려고 시도 - import parquet 를 하려는데 모듈이 없음 - 리눅스에서 pip3 install parquet 하려는데 gcc 가 없어서 설치를 못한다는 에러가 뜸 2. 해결 방법 - 이전부터 pyarrow 를 통해서 parquet 타입을 열 수 있도록 만들었음.. pip3 install pyarrow --- from pyarrow import parquet
[Python] deque 란?
·
언어/Python
1. 정의 큐의 앞, 뒤에서 삽입, 삭제가 가능한 큐 double - ended - queue 의 줄임말 사용법과 deque 에 사용하는 변수들은 아래 링크 참고 https://velog.io/@nayoon-kim/%ED%8C%8C%EC%9D%B4%EC%8D%AC-deque [파이썬] deque 파이썬을 이용해서 BFS를 풀면 주로 사용하게 되는 자료구조가 Deque다. 사용하기야 자주 사용하지만 생각보다 deque을 잘 모르고 사용한다는 생각이 들어서 정리를 하기로 했다.큐의 앞, 뒤에서 삽 velog.io
[Linux] su / su - 차이
·
언어/Linux
1. 정리 su 명령어는 현재 계정의 환경변수들을 유지한 채, 대상 계정으로 전환 su - 명령어는 다른 사용자의 계정으로 전환하고 환경변수까지 그 계정의 상태로 완전히 전환 2. 참고 링크 https://www.leafcats.com/168 리눅스 명령어 sudo , su , su - 리눅스는 다중 사용자 시스템(Multi-User System)이다. 즉, 한 대의 OS에 여러 사용자가 접속해서 사용하게된다. 더군다나 개인용 PC보다는 서버용 OS로 많이 사용되기 때문에 권한에 대한 관리가 매우 www.leafcats.com
[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 ..