전체 글 62

[ PostgreSQL ] PostgreSQL 설치

※ Installing PostgreSQL 16 on Linux from source.※ Version: Linux 8.10 (Rocky), PostgreSQL 16.4. [ Package 설치 ]- package updatednf update -y - Developmemt Tools 설치dnf groupinstall -y "Development Tools" --skip-broken - package 설치dnf install -y wget readline-devel zlib-devel bison flex libxml2-devel libxslt-devel openssl-devel libicu libicu-deve [ PostgreSQL 설치 전 사전 작업]- PostgreSQL 관리를 위한 OS 계정 추가..

IT/PostgreSQL 2025.02.28

[PostgreSQL] VACUUM이란?

[ VACUUM? ]PostgreSQL에서 MVCC 지원을 위해 사용된 레코드(row) 및 XID를 관리하고 디스크 공간을 확보하며, 통계 정보를 갱산하는 작업[ VACUUM의 필요성 ]Dead Tuple 정리로 쿼리 성능 향상과 FSM(FreeSpaceMap) 확보 및 VM(Visivility Map) 갱신XID Wraparound로 인한 데이터 손실 방지Database의 통계정보 수집 및 갱신Query Planner에 필요한 통계정보 갱신[ VACUUM FULL ]물리 디스크 공간 확보Access Exclusive Lock을 흭득하여 Select도 대기 상태로 됨[ AUTO VACUUM ]Dead Tuple 누적치가 임계에 도달했을 때 자동으로 Vacuum을 수행하여 FSM 반환 및 XID Wrapa..

IT/PostgreSQL 2025.02.28

[PostgreSQL] MVCC란?

[ MVCC? ]Multi-Version Concurrency Control (다중 버전 동시성 제어)과거부터 현재까지의 데이터를 버전 별로 구분하여 동시에 관리, 제공하는 기법사용자가 조회를 시작한 시점 기준의 데이터를 제공 받을 수 있음쿼리가 시작된 시점의 XID와 같거나 작은 데이터 버전을 읽는 것이 핵심Read와 Writer 간의 Blocking 현상을 제거함으로써 동시성 상승[ PostgreSQL MVCC? ]이전 버전 데이터와 현재 버전 데이터를 동일한 테이블 내에서 보관그로 인해 Dead Tuple이 증가하여 테이블 사이즈 Bloat현상이 발생Bloat 현상 : 실제 데이터 크기보다 데이터베이스 크기가 커지는 현상각 레코드(row)별로 4Byte의 XID(버전 정보)를 주어 시점을 식별Vac..

IT/PostgreSQL 2025.02.28

[IS NULL] 업그레이드 할 수 없는 아이템 구하기 (MySQL)

https://school.programmers.co.kr/learn/courses/30/lessons/293259 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr - 문제 :잡은 물고기의 평균 길이를 출력하는 SQL문을 작성해주세요.평균 길이를 나타내는 컬럼 명은 AVERAGE_LENGTH로 해주세요. 평균 길이는 소수점 3째자리에서 반올림하며, 10cm 이하의 물고기들은 10cm 로 취급하여 평균 길이를 구해주세요. - 풀이 :MySQL-- FISH_INFO : ID, FISH_TYPE, LENGTH, TIMEselect round(AVG( ifnull(LENGTH,10)),2) as AVERAGE_..

IT/SQL 테스트 2025.02.21

[IS NULL] 업그레이드 할 수 없는 아이템 구하기 (MySQL)

https://school.programmers.co.kr/learn/courses/30/lessons/273712 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr - 문제 : 더 이상 업그레이드할 수 없는 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬해 주세요.  - 풀이 :MySQLleft join해서 i.item_id랑 t.parent_item_id가 같으면 t.item_id가 있는 table 생성(= i.item_id에서 t.parent_item_id가 ..

IT/SQL 테스트 2025.02.21

[IS NULL] ROOT 아이템 구하기 (MySQL)

https://school.programmers.co.kr/learn/courses/30/lessons/273710 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr - 문제 : ROOT 아이템을 찾아 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME)을 출력하는 SQL문을 작성해 주세요. 이때, 결과는 아이템 ID를 기준으로 오름차순 정렬해 주세요.  - 풀이 :MySQL-- ITEM_INFO : ITEM_ID, ITEM_NAME, RARITY, PRICE-- ITEM_TREE : ITEM_ID, PARENT_ITEM_IDselect i.ITEM_ID, i.ITEM_NAMEfrom ITEM_IN..

IT/SQL 테스트 2025.02.21

[IS NULL] 나이 정보가 없는 회원 수 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/131528 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr - 문제 :  USER_INFO 테이블에서 나이 정보가 없는 회원이 몇 명인지 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 USERS로 지정해주세요.  - 풀이 :Oracle-- USER_INFO : USER_ID, GENDER, AGE, JOINEDSELECT Count(USER_ID) as USERSfrom USER_INFOwhere AGE is null;MySQL-- USER_INFO : USER_ID, GENDER, AGE, JOI..

IT/SQL 테스트 2025.02.21

[IS NULL] NULL 처리하기

https://school.programmers.co.kr/learn/courses/30/lessons/59410 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr - 문제 : 입양 게시판에 동물 정보를 게시하려 합니다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요.  - 풀이 :Oracle-- ANIMAL_INS : ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, S..

IT/SQL 테스트 2025.02.21

[IS NULL] 이름이 있는 동물의 아이디

https://school.programmers.co.kr/learn/courses/30/lessons/59407?language=mysql 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr - 문제 :  동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다. - 풀이 :Oracle-- ANIMAL_INS : ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKESELECT ANIMAL_IDfrom ANIMAL_INSwhere NAME is not n..

IT/SQL 테스트 2025.02.21

[IS NULL] 이름이 없는 동물의 아이디

https://school.programmers.co.kr/learn/courses/30/lessons/59039?language=oracle 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr - 문제 : 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.  - 풀이 :Oracle-- ANIMAL_INS : ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKESELECT ANIMAL_IDfrom ANIMAL_INSwhere NAME ..

IT/SQL 테스트 2025.02.21