개발로 자기계발
728x90
SMALL
트랜잭션 특성 - Consistency(일관성)
Database & Data/기초지식 2024. 3. 24. 15:08

설명 트랜잭션의 실행 전과 후에 데이터베이스가 정의된 비즈니스 규칙과 제약 조건을 계속해서 충족하도록 보장하는 속성 내용 구분 설명 비고 데이터의 일관성 데이터가 일관된 상태를 유지하는 것을 의미 사용자에 의해 정의, 참조 무결성(외래키) 원자성, 고립성(격리 레벨에 따라 달라짐) 읽기의 일관성 데이터를 읽을 때 사용자가 항상 최신의 일관된 데이터를 보게 되는 것 데이터의 변경 사항이 다른 트랜잭션에 어떻게 즉시 반영되는지는 격리 레벨에 따라 달라짐 이는 관계형 및 비관계형 데이터베이스 모두에 적용되며, 참조 무결성을 포함한 일관성을 보장하는 데 필수적 데이터의 일관성 예시 pictures 테이블 ID(PK) title LIKES 1 Sunset 2 2 Mountain View 1 picture_like..

트랜잭션 특성 - Isolation(고립성)
Database & Data/기초지식 2024. 3. 24. 13:57

설명 같은 데이터를 쓰고 읽기 위해 다중 트랜잭션의 동시성이 발생할 수 있는 가능성이 있는데 이것이 고립의 시작이며, 격리 레벨에 따른 읽기 현상이 발생한다. 내용 트랜잭션 격리 레벨(Transaction Isolation Level) [MySQL] 트랜잭션 격리 수준(간단한 정리) READ UNCOMMITTED 정의 다른 트랜잭션에서 아직 커밋되지 않은 데이터도 조회할 수 있다. 부정합 '더티 리드(Dirty Reads)'가 발생할 수 있다. 아직 확정되지 않은 데이터를 읽어서 그 트랜잭션이 롤백되 zambbon.tistory.com 읽기 현상(Read Phenomena) 구분 설명 Dirty Reads 아직 커밋되지 않은(즉, 최종 확정되지 않은) 데이터를 읽는 현상 Non-Repeatable Rea..

트랜잭션 특성 - Atomicity(원자성)
Database & Data/기초지식 2024. 3. 24. 13:55

설명 트랜잭션의 모든 쿼리들은 성공해야만 한다. 하나의 쿼리가 실패한다면, 트랜잭션의 이전 성공한 쿼리들은 즉시 롤백 트랜잭션의 커밋 이전에 데이터베이스가 다운된다면, 트랜잭션의 이전 성공한 쿼리들은 즉시 롤백 내용 원자성을 구현하는 방법에는 여러 가지가 있다. 가장 일반적인 방법은 로깅과 체크포인트를 사용하는 것이다. 구분 설명 Logging 트랜잭션과 관련된 모든 변경 사항을 로그에 기록한다. 트랜잭션이 실패할 경우, 로그를 사용하여 변경 사항을 롤백하고 데이터베이스를 이전 상태로 복원할 수 있다. Checkpoints 주기적으로 또는 특정 조건에서 데이터베이스의 현재 상태를 안전한 저장 위치에 기록한다. 시스템 장애 발생 시, 최근 체크포인트부터 복구 과정을 시작하여 시간과 자원을 절약할 수 있다...

트랜잭션(Transaction) 소개
Database & Data/기초지식 2024. 3. 24. 13:53

트랜잭션 이란? A Collection Of Queries(쿼리 모음) One Unit Of Work(하나의 작업 단위) 예시) 은행 거래(SELECT, UPDATE, INSERT) 트랜잭션 수명(Transaction Lifespan) 구분 설명 Begin 트랜잭션 시작 Execution 트랜잭션 실행 Validation 트랜잭션 검증 / 결정 Commit or Rollback 트랜잭션 커밋(디스크에 입력) or 트랜잭션 롤백(메모리에 있는것을 되돌리기) Unexpected Ending 예상치 못한 상황(=Rollback) ex) Crash, Bug 트랜잭션 특성(Nature of Transactions) 데이터베이스 트랜잭션이 안전하고 신뢰할 수 있도록 만드는 규칙 세트 구분 설명 Atomicity(원..

[MySQL] 트랜잭션 격리 수준(간단한 정리)
Database & Data/MySQL 2024. 2. 29. 14:19

READ UNCOMMITTED정의다른 트랜잭션에서 아직 커밋되지 않은 데이터도 조회할 수 있다.부정합'더티 리드(Dirty Reads)'가 발생할 수 있다. 아직 확정되지 않은 데이터를 읽어서 그 트랜잭션이 롤백되었을 경우 잘못된 정보를 기반으로 작업을 수행할 위험이 있다.상황 설명:도서관에서 책을 읽기 시작했다.다른 사람이 책에 메모를 하고 있지만, 아직 메모를 완성하지 않았다.READ UNCOMMITTED 상황에서는, 본인이 그 미완성 메모를 읽을 수 있다.즉, 작성자가 아직 메모를 확정하지 않았음에도 불구하고, 그 내용을 볼 수 있다.READ UNCOMMITTED는 다른 사람이 최종적으로 확정하지 않은 정보에 접근할 수 있다.이는 메모가 나중에 변경되거나 삭제될 수 있음을 의미하며, 이로 인해 잘못..

[MySQL] 쿼리 개선 기록 - 날짜 범위, 중복 제거
Database & Data/MySQL 2024. 1. 31. 13:35

날짜로 필터링을 하거나 데이터 중복을 제거할 때 인덱스에서 데이터를 찾는지 또는 추가적인 작업을 하는지는 쿼리 속도에 영향을 준다. 이 간단한 작업으로도 큰 효과를 가져올 수 있었다. 당시 회사내 쿼리 개선 된 결과) 분류 쿼리 속도 행 수 기존 쿼리 약 26401ms 약1800만건 개선 된 쿼리 약 190ms 약6만8천건 가정 예를 들어 이런 쿼리가 있다고 가정해 보자.(날짜에 파티션은 제외하고 가정) SELECT student, count(DISTINCT class_uid) as total FROM school.class1 WHERE date_format(plan_dt, '%Y%m') = '202307' GROUP BY student; 1. class1에는 plan_dt에 인덱스가 생성되어 있다. 2..

Superset ERROR: Could not build wheels for python-geohash, which is required to install pyproject.toml-based projects 에러
버그처리 2023. 11. 13. 18:12

원인 파악 gcc 컴파일러나 다른 필수 라이브러리가 누락되었거나, 해당 EC2 인스턴스에 설치되어 있지 않음을 의미할 수 있다. 원인 해결 1. 개발 도구 설치: gcc를 포함한 필요한 개발 도구들이 시스템에 설치되어 있지 않다면, 이를 설치 이 그룹에는 GCC, Make, Autoconf 등과 같은 일반적인 개발 도구들이 포함되어 있다. 이러한 도구들은 소프트웨어 개발과 컴파일에 필요 - Ubuntu 같은 Debian 기반 시스템 sudo apt-get update sudo apt-get install build-essential - CentOS 같은 Red Hat 기반 시스템 sudo yum groupinstall -y "Development Tools" 2. 파이썬 개발 헤더와 라이브러리 설치: 파..

DBA로의 여정: 5개월 회고 - 2
회고 & 일상 2023. 10. 16. 23:55

클라우드와 DBA의 역할 분류 내용 배경 현재 회사에서는 Aurora를 사용하고 있지만, 인프라 관리는 따로 인프라 담당자님이 하고 있습니다. 세부 내용 Aurora와 같은 클라우드 기반 DB 서비스의 경우, 기존의 온프레미스 환경과는 달리 물리적인 서버 관리보다는 성능 최적화와 데이터 관리에 중점을 둘 필요가 있습니다. 결론 클라우드 환경에서의 DBA는 데이터 구조 최적화, 쿼리 튜닝, 백업 및 복구 전략 등의 역할에 더욱 집중해야 함을 깨달았습니다. 다만, Aurora의 관리는 중점은 누구인가?에 대해서는 의문이 들었습니다. DBA와 파이썬의 조화 분류 내용 배경 최근에는 DBA가 자동화 스크립트나 데이터 처리 작업을 위해 프로그래밍 언어를 활용하는 경우가 많아지고 있다고 합니다. 세부 내용 파이썬은..

DBA로의 여정: 5개월 회고 - 1
회고 & 일상 2023. 10. 16. 23:21

1년 반정도 데이터 매니저로 일을 하다가 최근 DBA로 경력을 시작한 지 5개월 차에 접어들었습니다. 회사에서 DBA로서의 첫 5개월을 마치며, 5개월이라는 시간이 그렇게 길지는 않지만, 1개의 서비스를 오픈하며 DBA로서 많은 것을 배우고, 다양한 고민을 해보며 성장하는 계기가 되었습니다. 아직 주니어라 많이 부족하지만, 이 과정에서 느낀 점과 배운 것들을 공유하고자 합니다. 어디까지나 개인적인 견해입니다. 개발자와의 협업 분류 내용 배경 신입 DBA로 들어왔을 때, 가장 먼저 느낀 점은 개발자와의 소통의 중요성이었습니다. 세부 내용 정규화와 성능의 균형, 테이블 구조 설계 시 개발자의 요구 사항과 DBA의 논리적 구조 설계 간의 균형을 찾는 과정에서 두 직군 간의 소통의 중요성을 느꼈습니다. 결론 서..

article thumbnail
Local MySQL로 DB 서버 만들기(외부 IP에서 접속)
Database & Data/MySQL 2023. 8. 26. 23:52

집에 남는 Window 노트북을 어떻게 활용할까 생각을 하다가 DB로 사용하면 좋겠다고 생각했다. 그래서 이 노트북에 MySQL Workbench와 서버 설치부터 외부 IP로 접속하는 방법까지 순차적으로 정리해보려고 한다. DB 컴퓨터: Window 11(사양 구림..) 버전: MySQL 8 Version 접속 컴퓨터: MacOS MySQL Workbench와 Server 설치하기 먼저, Window 컴퓨터에 MySQL Workbench와 Server를 설치하는 것이 필요하다. 설치 링크 : MySQL 공식 사이트 MySQL Workbench와 Server를 다운로드하고 설치할 수 있다. Workbench는 MySQL Server8.0과 호환이 되기 때문에 8.1이 아닌 8.xx 버전을 다운로드하자 새로..

728x90
SMALL