MySQL

    [바미] 데이터베이스 로드 밸런싱

    데이터베이스 로드 밸런싱 은데이터베이스 서버들 사이에서 요청 트래픽을 균등하게 분산시켜 성능을 향상시키는 기법입니다. 이를 통해 하나의 서버가 과도한 부하를 받는 것을 방지하고, 서비스 이용자들에게 빠른 응답을 제공할 수 있습니다. 데이터베이스 로드 밸런싱은 주로 두 가지 방식으로 이루어집니다. 하나는 DNS 로드 밸런싱(Domain Name System Load Balancing)이며, 다른 하나는 데이터베이스 로드 밸런서(Database Load Balancer)를 사용하는 것입니다. DNS 로드 밸런싱 데이터베이스 서버들의 IP 주소를 가지고 있는 DNS 서버를 통해 요청 트래픽을 분산하는 방식입니다. 장 단점 이 방식은 구성이 간단하지만, 서버의 상태를 고려하지 않아 서버 추가 및 제거를 할 때마..

    [바미] 데이터 베이스 분산 방법

    데이터 베이스 분산 데이터베이스 분산은 데이터베이스를 여러 개의 노드로 분산하여 관리하는 기술입니다. 이를 통해 데이터베이스의 성능과 확장성, 가용성을 향상시킬 수 있습니다. 주로 논리적 분산과 물리적 분산 두 가지 방식으로 이루어집니다. 데이터 베이스 분산은 단일 서버에서 데이터 베이스를 관리하는 것보다 요청 처리량을 향상시킬 수 있지만 관리 및 유지보수 비용이 더 높아지는 단점이 있습니다. 그래서 적절한 용도에 따라 데이터베이스 분산을 사용하면 요청 처리량을 향상시키며, 시스템의 가용성을 높일 수 있지만, 관리 및 유지보수 비용이 더 높아지므로 신중하게 검토해야 합니다. 논리적 분산과 물리적 분산은 데이터베이스를 관리하는 방식에서 차이가 있는데 이 둘에 대해 살펴 보겠습니다. 논리적 분산 논리적 분산..

    [바미] 데이터 베이스 스케일링

    데이터베이스 스케일링은 데이터베이스 용량을 증가하거나 그로 인한 성능 향상을 위한 기법입니다. 데이터베이스 스케일링은 일반적으로 수직 스케일링 (Vertical Scaling), 수평 스케일링 (Horizontal Scaling) 2가지 방법으로 이루어집니다 데이터베이스를 스케일링 할 때 적절한 전략을 선택하는 것이 중요한데 기존 시스템에서 사용하던 인프라와 새로운 인프라 간에 호환성을 고려해야 하며, 이를 위해 적절한 데이터베이스 클러스터링 기법을 선택해야 합니다. 이들은 데이터베이스 일관성, 확장성, 가용성을 유지하면서 성능을 향상시키는 데 사용될 수 있습니다. 수직 스케일링 (Vertical Scaling) 데이터베이스 서버의 하드웨어 자원을 확대하는 방법. 이를 통해 더 많은 요청을 처리할 수 있..

    [바미] 데이터 베이스 캐싱 전략

    데이터베이스 캐싱 전략 요청을 빠르게 처리하기 위해 일부 데이터를 캐싱하여 재사용 할 수 있는 방법을 의미합니다. Cache hit 찾으려는 데이터가 캐쉬에 저장되어 있어 데이터베이스를 거치지 하고 캐쉬에서 바로 데이터를 가져오는 형태. Cache hit이 많이 발생할수록 데이터 베이스에 대한 부담이 줄어든다. Cache-Asdie 일반 적인 형태의 캐쉬로 어플리케이션이 캐쉬업데이트 업데이트 담당. 캐쉬에 먼저 쿼리문을 보내고 캐쉬에 데이터가 없을시 데이터베이스에서 데이터를 가져온후 캐쉬에 데이터를 업데이트 한다 장점: 1. 데이터베이스 데이터 모델과 캐쉬의 데이터 모델이 다르게 저장 가능 2. 캐쉬 서버가 다운되도 데이터베이스에서 데이터를 가져올수있다. 3. Lazy Loading 단점: 1. 데이터와..

    [바미] Join 시 on과 where의 차이

    요약 on : join 전에 조건을 필터링 where : join 후에 조건을 필터링 INNER JOIN 에서의 ON vs WHERE INNER JOIN + ON 조건절 + ON 조건절 SELECT * FROM a INNER JOIN b ON a.key = b.key AND a.key2 = b.key2 EQUI JOIN + WHERE 조건절 SELECT * FROM a AS a , b AS b WHERE a.key = b.key AND a.key2 = b.key2 INNER JOIN + ON 조건절 + WHERE 조건절 SELECT * FROM a INNER JOIN b ON a.key = b.key WHERE a.key2 = b.key2 위 세 쿼리는 모두 같은 결과, 같은 퍼포먼스가 나오게 됨. 즉,..

    [바미] Mysql 이전 날짜(특정날짜) 데이터 조회에 대하여

    안녕하세요. 오늘은 Mysql에서 이전 이전 날짜 또는 특정 날짜를 조회할 때 유의 할 부분을 알려드리고 싶어 포스팅을 하게 되었습니다. 날짜 칼럼에 있는 데이터가 위와 같이 있습니다. 여기서 만약 1주 전, 1년 전 데이터를 조회 하고 싶을 때 보통 인터넷에 나와있는 코드는 아래와 같습니다. // 1분전 데이터 조회 SELECT * FROM 테이블명 where 시간칼럼명 = DATE_ADD(NOW(), INTERVAL -1 MINUTE) // 10분전 데이터 조회 SELECT * FROM 테이블명 where 시간칼럼명 = DATE_ADD(NOW(), INTERVAL -10 MINUTE); // 한시간전 데이터 조회 SELECT * FROM 테이블명 where 시간칼럼명 = DATE_ADD(NOW(), ..