728x90 DB5 DynamoDB? 특징 1. 배포가 단순하고 신속하다. 2. 단순한 인터페이스의 조작만으로 규모를 확장시키기 수월하다. 3. 데이터의 순실을 방지하기 위해 데이터 베이스를 자동으로 백업한다. 4. 규모가 증가하고, 장애가 나도 일관적인 응답시간을 보여준다. 5. NoSQL, 보조 인덱스를 통해 빠른 조회가 가능 사용 1. 데이터베이스를 확장하거나, 확장하는 과정에서 분산된 데이터베이스를 관리하기에 힘든 경우 사용 2. 트랜잭션, JOIN과 같은 복잡한 테이블 데이터 처리과정이 있는 경우 적합하지 않음 3. 스키마가 정해져 있지 않고 비정형적인 데이터를 저장하는데 유용하다. 4. AWS의 Region별로 데이터를 가용영역 3곳에 복제하여 저장하여 하나에 장애가 발생하여 정지하더라도 DB를 정상적으로 사용이 가능 5. 트래픽.. 2021. 7. 6. Connection pool? Connection pool? : 프로그램에서 요청이 오면 미리 pool에 생성해둔 Connection 객체를 가져다쓰고, 완료시 pool에 반환하는 프로그래밍 기법 DBCP 특징 웹 컨테이너가 실행되면서 connection 객체를 미리 pool에 생성해 둔다. HTTP 요청에 따라 pool에서 connection객체를 가져다 쓰고 반환한다. 이와 같은 방식으로 물리적인 데이터베이스 connection 부하를 줄이고 연결 관리 한다. pool에 미리 connection이 생성되어 있기 때문에 connection을 생성하는 데 드는 요청마다 연결 시간이 소비되지 않는다. 커넥션을 계속해서 재사용하기 때문에 생성되는 커넥션 수를 제한적으로 설정함 장점 불필요한 작업(커넥션 생성, 삭제)가 사라지므로 성능향상.. 2021. 7. 6. [DB] Sharding 1.Sharding? → 같은 테이블 스키마를 가진 데이터를 다수의 데이터베이스에 분산하여 저장하는 방법 *Horizontal Partition이라고 볼 수 있으며, Application level 및 database level에서도 가능하다. *프로그래밍, 운영적인 복잡도가 높아진다는 단점이 있다. 2.Sharding에 필요한 원리 - 분산된 Database에서 Data를 어떻게 Read할 것인가? - 분산된 Database에 Data를 어떻게 잘 분산되어 저장할 것인가 - 균일하게 분산하는 것이 목표 3. Sharding 방법 Hash Sharding - Shard Key : Database id를 Hashing하여 결정 - Hash크기는 Cluster안에 있는 Node개수로 정한다. 단점 - Clu.. 2021. 6. 24. [MySQL] Explain Explain? MySQL에서 실행 계획이 무엇인지 알고 싶을 때 사용하는 명령어 *실행계획 : 사용자가 작성한 SQL이 요구한 사항을 효율적으로 처리하기 위해 옵티마이저가 작업의 방법과 순서를 결정하는 것 사용방법 EXPLAIN [EXTENDED] SELECT ... FROM ... WHERE ... id : 어떤 SELECT문을 나타내는 지를 알려주는 것으로 순서에 따라 순차적으로 번호가 부여된다. select_type : select문의 유형 SIMPLE : Union 이나 Sub Query 가 없는 단순 SELECT 문 PRIMARY : Sub Query를 사용할 경우 Sub Query의 외부에 있는 쿼리(첫번째 쿼리) UNION 을 사용할 경우 UNION의 첫 번째 SELECT 쿼리 DERIVE.. 2021. 6. 24. 이전 1 2 다음 728x90