DBMS(186)
-
\dt 명령어로 테이블을 조회했을 때 스키마가 보이지 않을
psql에서 \dt 명령은 기본적으로 현재 search_path에 있는 스키마 또는 명시된 스키마의 테이블만 보여준다.즉, \dt만 입력하면 PostgreSQL은 기본적으로 public과 search_path에 지정된 스키마만 확인한다. \dt log.* log 스키마에 있는 모든 테이블을 명시적으로 보여준다. 아무 것도 안 나오면 진짜 테이블이 없는 것이다. search_path 설정에 log 스키마가 빠져있을 수 있음현재 접속된 세션에서 log 스키마가 검색 경로(search_path)에 없으면 \dt로는 기본 출력되지 않다. SHOW search_path; search_path -------------- "$user", public, configSET search_path TO log, conf..
2025.05.29 -
권한 부여
✅ 회사 내부 시스템에서 사용되는 PostgreSQLDB 관리자 (DBA): admin_user – 전체 권한 보유웹 애플리케이션: app_user – 특정 데이터베이스에만 SELECT/INSERT 권한백업 전용 계정: backup_user – 읽기 전용 권한 (SELECT만)보고서 생성 계정: report_user – SELECT + VIEW 권한 🔹 1. 유저 생성-- 관리자 계정CREATE ROLE admin_user WITH LOGIN PASSWORD 'secure_admin_pass';ALTER ROLE admin_user WITH SUPERUSER;-- 웹 애플리케이션 계정CREATE ROLE app_user WITH LOGIN PASSWORD 'secure_app_pass';-- 백업..
2025.05.01 -
VirtualBox Ubuntu VM postgres 설
🔹 SSH 및 PostgreSQL 설치 sudo apt updatesudo apt install openssh-server postgresql postgresql-contrib -y ✅ PostgreSQL 실행 테스트 (psql 접속)PostgreSQL은 기본적으로 postgres라는 관리 계정을 가지고 있다.sudo -u postgres psql성공 시 아래처럼 PostgreSQL 셸에 들어간다.
2025.04.21 -
PostgreSQL을 WSL2 + Ubuntu 환경 구성
PowerShell 7.5.0PS C:\Windows\System32> wsl --install다운로드 중: Ubuntu[====== 11.0% ] ✅ Windows 기능에서 '가상 머신 플랫폼' 활성화PowerShell(관리자 권한)에서 다음 명령어 실행:WSL2는 현재 컴퓨터 구성에서 지원되지 않습니다."가상 머신 플랫폼" 선택적 구성 요소를 사용하도록 설정하고 BIOS에서 가상화가 사용하도록 설정되어 있는지 확인하세요.실행하여 "가상 머신 플랫폼"을 사용하도록 설정: wsl.exe --install --no-distribution자세한 내용은 https://aka.ms/enablevirtualization 참조하세..
2025.04.21 -
B-tree 인덱스 vs Hash 인덱스
B-tree 인덱스 vs Hash 인덱스 B-tree 인덱스 Hash 인덱스 지원하는 연산=, , BETWEEN, LIKE 'abc%'= 만 지원내부 구조정렬된 트리 구조해시 버킷 구조 검색 속도O(log n)O(1) (이론상 더 빠름) 정렬된 데이터정렬 유지됨 → ORDER BY, 범위 조회 가능정렬 불가PostgreSQL 기본값✅ 기본 인덱스 타입❌ 사용 시 USING HASH 명시 필요 ✔️ 언제 Hash 인덱스가 유리할까?조건이 정확히 일치하는 경우만 있고 (WHERE username ..
2025.04.21 -
인덱스(Index) 사용해 쿼리 성능 올리기 B-tree (Balanced Tree)
testdb=# explain analyze select * from users where username ='user_54321'; QUERY PLAN-------------------------------------------------------------------------------------------------- Seq Scan on users (cost=0.00..189.05 rows=1 width=21) (actual time=0.415..0.415 rows=0 loops=1) Filter: (username = 'user_54321'::text) Rows Removed by Filter: 10004 ..
2025.04.21