database

· DataBase
🎯 Goals connection pool 이 무엇인지 안다. DB 연결 객체의 생성 과정을 안다. 뭐하는 앤데? DB 연결 객체의 캐시풀로, 연결 객체들이 재사용 될 수 있게한다. 왜 쓰는데? DB 커맨드의 성능 향상 👉🏻 앱단에서 DB에 쿼리를 날릴 때에는 반드시 연결 객체가 생성되어야한다. 연결 객체 생성 (연결) - 해제 마다 지연이 발생하는데 동시에 여러 커맨드를 입력할 경우 지연이 누적되어 성능에 악영향을 미친다. 따라서 캐시 풀에 재사용 가능한 연결객체를 미리 생성해 두고 다른 세션에서 이 연결 객체(이미 생성되어있는)를 그대로 재사용 할 수 있게 두는 것이다. 사용 후에는 '반납'한다. 커넥션 풀 미사용 커넥션 풀 사용 연결 객체 생성 - 해제 연결 객체 사용 - 반납 👉🏻 연결 객체 생성..
When to use? postgreSQL 내에서 특정 row 가 변경되면 해당 이벤트를 특정 채널에 Notify 할 수 있는 기능. ex) Node.js 에서 PostgreSQL 에서 발생한 특정 이벤트 페이로드를 받아온다. Syntax pg_notify() is just a convenient wrapper function for the SQL NOTIFY command. pg_notify (channel-name, payload) Channel 알림 채널명, 채널명은 테이블명 그대로 따라가는 것이 관례다. Payload 8,000 바이트 이하의 문자열 데이터 💡 Notify in transaction NOTIFY behaves is executed in a transaction, the notify..
🎯 Goals 트랜잭션의 사용 방법을 알아본다. 트랜잭션이 동작 원리를 그림으로 정리한다. 동작원리 이해를 위해 WAL, CDC가 무엇인지 알아본다. 1. 트랜잭션 사용 방법 BEGIN 트랜잭션 블록 초기화 키워드로 모든 문장을 하나의 트랜잭션으로 묶는다. `COMMIT` `ROLLBACK` 연산을 만나기 전까지 Automacity 를 보장하는 대 신 CPU/Disk activity 가 있기 때문에 속도는 더 느리다. WITHOUT BEGIN 기본적으로 BEGIN 이 없으면 각각의 statement (쿼리문)이 독립된 트랜잭션이 된다. 속도는 더 빠르다. 📝 이럴 때 트랜잭션을 써라 All or Nothing 여러 쿼리가 하나의 작업 단위로 묶여야 할 때 다 실행되거나 다 안되거나 2. 트랜잭션의 동작 ..
nextval(regclass) 시퀀스의 다음 값을 리턴하는 함수로 thread-safe 하다. 👉🏻 여러 세션에서 이 함수를 동시에 실행하면 각각 다른 값을 갖게한다. 💡 nextval() 을 호출하면 가리키고 있던 시퀀스는 반환하고 곧바로 다음 시퀀스를 가리킨다. ex) nextval(table_name_pkpk:regclass) => 1000 // 리턴은 1000을 받아왔지만 이미 테이블은 다음 시퀀스로 '1001'을 가리키고 있다. 다른 세션에서 INSERT 쿼리 -> 1001 입력 regclass regclass? 시퀀스의 Object ID (OID) 를 의미. 이게 왜 필요할까? OID는 여러 시스템 테이블에 쓰이는 기본키다. OID 는 자체적인 동작이 없다. 그저 의미있는 이름을 시스템 오브..
🎯 요구사항 Fastify + Swagger (OPEN API 3.0.3) 를 쓴다면 JSON Schema 를 정의하는 일이 익숙할 것이다. 허나, 프로젝트 초반일수록 DB 스키마는 물론 API 가 변경되는 일이 잦아 JSON Schema 변경도 잦아진다. 개발과 문서화 모두를 맡은 개발자 입장에선 여간 귀찮은 일이 아닐 수 없다. ORM없이 DB 스키마를 변경할 때마다 연결된 DB로부터 자동으로 JSON Schema 를 받아올 순 없을까? 구원 투수 GitHub - SpringTree/pg-tables-to-jsonschema: A command-line utility and module to turn postgres tables into JSON Schemas A command-line utility..
· DataBase
Oracle Database 설치 & 환경 설정 www.oracle.com/kr/database/technologies/oracle-database-software-downloads.html#19c Oracle Client Oracle Default Port 1521 Client 필요한 환경 설정 파일 tnsname.ora SID, SERVICE_ID, IP, PORT 등 네트워크 접속 설정 정보를 담는 파일 sqlnet.ora 네트워크 접속시 인증 방식, 설정 파일(ex.tnsname.ora) 을 지정하는 파일 두 파일 경로는 다음과 같다. (ORACLE_HOME == 오라클 파일 설치경로) %ORACLE_HOME%/network/admin 원격 접속 구문 sqlplus username/password..
M_Falcon
'database' 태그의 글 목록 (2 Page)