https://medium.com/@rakyll/things-i-wished-more-developers-knew-about-databases-2d0178464f78
Things I Wished More Developers Knew About Databases
A large majority of computer systems have some state and are likely to depend on a storage system. My knowledge on databases accumulated…
rakyll.medium.com
99.999%의 time network가 문제가 되지 않는다면 당신은 운이 좋은 것이다. (?)- ACID는 많은 의미를 가지고 있다.
- ACID
- Atomicity(원자성)
- Consistency(일관성)
- Isolation(독립성)
- Durability(지속성)
- ACID
- 데이터베이스마다 일관성(Consistency)과 독립성(Isolation)의 성능이 다르다.
- 낙관적 잠금(Optimistic locking)은 잠금을 유지할 수 없을 때 선택할 수 있는 옵션이다.
💡 낙관적 잠금: 동시에 동일한 데이터에 대한 여러 업데이트가 서로 간섭하지 않도록 방지하는 version 이라는 속성을 확인하여 Entity의 변경사항을 감지하는 메커니즘
- Dirty read와 데이터 손실 외에도 이상 현상들이 있다.
나의 데이터베이스와 나는 항상 정렬에 동의하지 않는다. (?)- Application-level sharding은 어플리케이션 외부에 있을 수 있다.
- AUTOINCREMENT 설정은 위험할 수 있다.
- Stale data는 유용하고 잠금이 필요하지 않다.
- 클럭 소스마다 클럭 스큐가 발생한다.
- 대기 시간에는 여러 가지 의미가 있다.
- 각 트랜잭션마다 성능 평가가 필요하다.
- 중첩된 트랜잭션은 위험할 수 있다.
- 트랜잭션이 활성 상태를 유지하면 안 된다.
- 쿼리를 설계하는 사람들은 데이터베이스에 대해 많은 것을 알려줄 수 있다.
- 온라인 마이그레이션은 복잡하지만 가능하다.
- 급격한 데이터베이스의 증가는 예측 불가능성을 초래한다.
데이터베이스 관련 용어들도 잘 모르는 상태에서 영문 아티클을 읽으니 더 헷갈렸다.
그래도 정처기 공부하며 봤던 단어(ex. ACID, 트랜잭션 등)들이 많아서 교재 참고해서 복습해야겠다고 생각했다.
이론으로는 대강 알고 있는 지식들이 실무에서는 어떤 상황에 적용되는지 알아보며 학습해야겠다.
🤔 DB 관련 개념 숙지
'Today I Learned' 카테고리의 다른 글
[스위디 3월] ChatGPT 케이스 스터디 (0) | 2023.03.09 |
---|---|
[스위디 3월] 1주 차 회고 (0) | 2023.03.06 |
[아티클 DB] 10 Best Database Design Practices (0) | 2023.02.20 |
[아티클 DB] React 16 Lifecycle Methods: How and When to Use Them (0) | 2023.02.13 |
[2022.01.21. 클린 코드] 시작 ~ 들어가면서 (0) | 2022.11.09 |