[바미] workbench에서 readonly 해제하기
·
MySQL(DB)
SELECT * FROM 테이블; 형태로 테이블을 조회할 때 위의 그림처럼 Read Only가 뜰 때는 조회하는 테이블에 pk(primary key)가 지정되지 않아 발생하는 문제입니다. 그러므로 PK를 지정해주시면 되겠습니다. ALTER TABLE `table`.`readonly` ADD PRIMARY KEY (`no`);
[바미] 데이터 베이스 서버 성능 튜닝
·
MySQL(DB)
서버 성능 튜닝 데이터베이스 서버 성능 튜닝은 성능 이슈를 해결하기 위해 수행되는 과정을 말하는데 아래와 같은 과정으로 진행하고 있습니다. 성능 모니터링: 서버의 리소스 사용량과 성능 지표를 수집하여 이를 통해 성능 이슈를 파악합니다. 성능 분석: 수집된 데이터를 분석하여 성능 이슈가 발생하는 원인을 파악합니다. 성능 최적화: 성능 이슈의 원인을 파악한 후 성능 최적화를 위한 적절한 조치를 취합니다. 이를 위해 데이터베이스 설정 및 쿼리 최적화, 인덱스 생성 및 관리, 캐시 전략 등을 적용합니다. 캐시 최적화: 데이터베이스 서버에서 사용되는 캐시 정책을 최적화하여 쿼리 성능을 개선할 수 있습니다. 쿼리 최적화: 쿼리문을 최적화하여 성능을 개선할 수 있습니다. 하드웨어 업그레이드: 하드웨어 사양을 업그레이..
[바미] 데이터 베이스 트랜잭션 관리
·
MySQL(DB)
데이터 베이스 트랜잭션 관리란, 데이터베이스에서 수행하는 여러 개의 작업들을 하나의 논리적 단위로 묶어서 처리하는 것을 말합니다. 트랜잭션은 ACID(Atomicity, Consistency, Isolation, Durability)라는 4가지 속성을 가지고 있습니다. 원자성(Atomicity): 트랜잭션은 원자적으로 수행되어야 하며, 트랜잭션 안의 모든 작업들이 한꺼번에 성공하거나, 실패해야 합니다. 일관성(Consistency): 트랜잭션이 수행되면서 데이터베이스의 정합성을 유지해야 합니다. 격리성(Isolation): 트랜잭션끼리는 각자 독립적으로 수행되어야 합니다. 내구성(Durability): 트랜잭션이 성공적으로 완료되더라도 (시스템 실패가 일어나더라도) 그 결과가 데이터베이스에 계속 유지되어..
[바미] 데이터베이스 로드 밸런싱
·
MySQL(DB)
데이터베이스 로드 밸런싱 은데이터베이스 서버들 사이에서 요청 트래픽을 균등하게 분산시켜 성능을 향상시키는 기법입니다. 이를 통해 하나의 서버가 과도한 부하를 받는 것을 방지하고, 서비스 이용자들에게 빠른 응답을 제공할 수 있습니다. 데이터베이스 로드 밸런싱은 주로 두 가지 방식으로 이루어집니다. 하나는 DNS 로드 밸런싱(Domain Name System Load Balancing)이며, 다른 하나는 데이터베이스 로드 밸런서(Database Load Balancer)를 사용하는 것입니다. DNS 로드 밸런싱 데이터베이스 서버들의 IP 주소를 가지고 있는 DNS 서버를 통해 요청 트래픽을 분산하는 방식입니다. 장 단점 이 방식은 구성이 간단하지만, 서버의 상태를 고려하지 않아 서버 추가 및 제거를 할 때마..
[바미] 데이터 베이스 분산 방법
·
MySQL(DB)
데이터 베이스 분산 데이터베이스 분산은 데이터베이스를 여러 개의 노드로 분산하여 관리하는 기술입니다. 이를 통해 데이터베이스의 성능과 확장성, 가용성을 향상시킬 수 있습니다. 주로 논리적 분산과 물리적 분산 두 가지 방식으로 이루어집니다. 데이터 베이스 분산은 단일 서버에서 데이터 베이스를 관리하는 것보다 요청 처리량을 향상시킬 수 있지만 관리 및 유지보수 비용이 더 높아지는 단점이 있습니다. 그래서 적절한 용도에 따라 데이터베이스 분산을 사용하면 요청 처리량을 향상시키며, 시스템의 가용성을 높일 수 있지만, 관리 및 유지보수 비용이 더 높아지므로 신중하게 검토해야 합니다. 논리적 분산과 물리적 분산은 데이터베이스를 관리하는 방식에서 차이가 있는데 이 둘에 대해 살펴 보겠습니다. 논리적 분산 논리적 분산..
[바미] 데이터 베이스 스케일링
·
MySQL(DB)
데이터베이스 스케일링은 데이터베이스 용량을 증가하거나 그로 인한 성능 향상을 위한 기법입니다. 데이터베이스 스케일링은 일반적으로 수직 스케일링 (Vertical Scaling), 수평 스케일링 (Horizontal Scaling) 2가지 방법으로 이루어집니다 데이터베이스를 스케일링 할 때 적절한 전략을 선택하는 것이 중요한데 기존 시스템에서 사용하던 인프라와 새로운 인프라 간에 호환성을 고려해야 하며, 이를 위해 적절한 데이터베이스 클러스터링 기법을 선택해야 합니다. 이들은 데이터베이스 일관성, 확장성, 가용성을 유지하면서 성능을 향상시키는 데 사용될 수 있습니다. 수직 스케일링 (Vertical Scaling) 데이터베이스 서버의 하드웨어 자원을 확대하는 방법. 이를 통해 더 많은 요청을 처리할 수 있..
[바미] 데이터 베이스 캐싱 전략
·
MySQL(DB)
데이터베이스 캐싱 전략 요청을 빠르게 처리하기 위해 일부 데이터를 캐싱하여 재사용 할 수 있는 방법을 의미합니다. Cache hit 찾으려는 데이터가 캐쉬에 저장되어 있어 데이터베이스를 거치지 하고 캐쉬에서 바로 데이터를 가져오는 형태. Cache hit이 많이 발생할수록 데이터 베이스에 대한 부담이 줄어든다. Cache-Asdie 일반 적인 형태의 캐쉬로 어플리케이션이 캐쉬업데이트 업데이트 담당. 캐쉬에 먼저 쿼리문을 보내고 캐쉬에 데이터가 없을시 데이터베이스에서 데이터를 가져온후 캐쉬에 데이터를 업데이트 한다 장점: 1. 데이터베이스 데이터 모델과 캐쉬의 데이터 모델이 다르게 저장 가능 2. 캐쉬 서버가 다운되도 데이터베이스에서 데이터를 가져올수있다. 3. Lazy Loading 단점: 1. 데이터와..
[바미] Join 시 on과 where의 차이
·
MySQL(DB)
요약 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 위 세 쿼리는 모두 같은 결과, 같은 퍼포먼스가 나오게 됨. 즉,..
[바미] 관계형 DB VS 비관계형 DB
·
MySQL(DB)
관계형 DB사전적인 의미를 살펴보자면관계형 데이터베이스란 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타낸다.테이블은 이름을 가지고 있으며, 행(row)과 열(column) 그리고 거기에 대응하는 값을 가진다. 즉, 관계형 데이터베이스는 위와 같이 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체로 이해할 수 있습니다.이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스라고 말합니다. 특징가장 많이 사용되고 있는 db의 한 종류 (고전적 데이터 베이스)table로 이루어져 있고, table은 키(key)와 값(value)의 관계를 나타냄.일반적으로 알고있는 Mysqsl, Oracle, Mssql 등.스키마 :..
Bami
'MySQL(DB)' 카테고리의 글 목록 (2 Page)