Database

Database

[PostgreSQL] Isolation level에 따른 트랜잭션 처리 방법

Isolation level 소프트웨어를 개발하는 경우 데이터베이스 트랜잭션 내에서 복잡한 방식으로 데이터를 운영하는 코드에서 비즈니스 논리 오류가 발생하지 않도록 트랜잭션이 서로 어떻게 영향을 미치는지 알아야 합니다. PostgreSQL에서 트랜잭션을 설정하는 방법은 총 4가지 1. READ UNCOMMITTED (낮은 격리수준) 설정에는 정의되어 있지만, 지원하지 않습니다. (READ COMMITTED와 동일) 2. READ COMMITTED (기본값) 커밋된 데이터만 READ 할 수 있으며, DIRTY READ가 불가능. (DIRTY READ : 다른 트랜잭션에서 커밋하지 않는 데이터를 읽을 수 있는 것) 3. REPEATABLE READ 조회 시 항상 동일한 데이터 응답을 보장. 4. SERIAL..

Database/PostgreSql

[Postgresql] 대기시간 통계 내보기, 성능개선 (explain , p50 p90 p99 latency)

상황 select(*) 로 코드를 작성하는 의미없이 생각없이 코드를 작성했다. 같이 개발하는 동아리 선생님께서 정말로 감사하게도 코드리뷰를 남겨주었다! 당시, explain = 설명해달라는 것이라고 생각해서 이런 황당한 답변을 내놓았다. 정말 앞으로의 실행계획을 써버린것이다. 상대는 정말 황당 했을 것이다. 정우님을 황당하게 하지말자! 다시 알아보자 Explain! Explain 이란? Postgres에서 제공하는 명령이다. EXPLAIN 을 사용하여 내가 테스트 할 sql을 작성해서 실행시키면 PostgreSQL 실행계획기가 만든 실행계획을 보여준다. - 실행 계획은 원하는 자료를 출력하기 위해서, 어떤 테이블이 테이블 전체 순차 검색을 하는지, 인덱스 검색을 하는지를 보여준다. - 여러 테이블이 조인..

Database

[Mac] Oracle DB 설치하기

Apple Silicon이 적용된 M1 맥북의 경우 oracle database 설치가 불가능하다. M1 맥북 사용자라면, 외부에 Oracle 데이터베이스를 구성하여 사용해야한다. mac os에서는 OracleDB를 바로 사용할 수 없어서 Docker를 통해 이용해야한다. Colima 설치 brew install colima Docker 설치 brew install --cask docker Colima 실행 Colima를 x86_64 환경으로 창을 띄어준다. colima start --memory 4 --arch x86_64 Oracle Database 11gR2 XE (11.2.0.2) 설치 docker search oracle-xe-11g docker pull jaspeen/oracle-xe-11g ..

Database/MySQL

[Mac/Mysql/Docker] - [28000][1045] Access denied for user 'root'@'localhost' (using password: YES)

Docker로 mysql을 생성하여서 인텔리제이에 연결하려하였다! docker pull mysql/mysql-server:8.0 docker run --name study-mysql -e MYSQL_PORT_HOST=% -e MYSQL_ROOT_PASSWORD=root1234! -p3306:3306 -d mysql:8 근데 계속해서 아래의 오류가 나왔다. 인텔리제이에서 연결하는데 계속해서 이런 오류가 났다 [28000][1045] Access denied for user 'root'@'localhost' (using password: YES) mysql이 이미 brew로 켜져있는 경우에, 다른 mysql 서버와 비번이 맞지 않는다고 나오는 오류 같았다. 그래서 아래의 명령어로 다른 mysql 서버를 모두..

yujindonut
'Database' 카테고리의 글 목록