Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
티스토리 뷰
SQL (Structed Query Language)
구조화된 질의 언어
-ANSI SQL 표준은 널리 사용되는 모든 관계형 데이터베이스 엔진에서 지원되며, 이러한 엔진들 중 일부는 해당 엔진의 특정한 기능들을 지원하기 위해 ANSI SQL을 확장
- SQL은 데이터의 행을 추가, 업데이트 또는 삭제 트랜잭션 처리 및 분석, 애플리케이션의 데이터의 하위 집합을 검색하며 데이터베이스의 모든 자원을 관리하는 데 사용된다.
1. DDL 데이터 정의
GREATE: schema, Domain, TAble, view, index를 정의
Alter: Table에 대한 정의를 변경
Drop: schema, Domain, TAble, view, index를 삭제
2. DML 데이터 조작
select: 테이블에서 조건에 맞는 Tuple을 검색 (최중요)
Insert: 테이블에서 새로운 Tuple을 삽입
Delete : 테이블에서 조건에 맞는 Tuple을 삭제
Update: 테이블에서 조건에 맞는 Tuple의 내용을 변경
3. DCL 데이터 제어
Commit: 데이터베이스 조작 작업이 정상적으로 완료(관리자에게 보고됨)
Rollback: 데이터베이스 조작 작업이 비정상적으로 종료되었을 경우 기존 상태로 복구
Grant: 데이터베이스 사용자에게 사용권한을 부여
Revoke: 데이터베이스 사용자에게 사용권한 부여 취소
DataBase 최적화
- 데이터베이스 최적화를 우한 방법으로는 하드웨어 수준에서 최적화를 진행하거나 데이터베이스 수준에서 최적화를 진행하는 방법으로 나누어진다.
[하드웨어 최적화]
모든 응용 프로그램은 사용량이 증가함에 따라 하드웨어 한계에 도달을 하게 된다.
한계를 극복하기 위해서는 더 많은 하드웨어 장치를 사용하게 하거나, 더 좋은 성능의 하드웨어를 사용하여 해결한다.(스케일 업, 아웃)
어떠한 장치에 의해 어떠한 성능 저하가 발생했는지를 파악하는 것이 중요하다.
[데이터베이스 최적화]
- 데이터베이스 최적화는 데이터베이스 구성을 올바르게 하여 효과적인 쿼리 처리하 이루어질 수 있도록 하기 위한 방법
- 다음과 같은 기준에 의해 데이터베이스 구성을 확인하고 최적화를 진행한다.
- 테이블이 올바르게 구성되어 있는지 확인
- 업데이트를 자주 수행하는 경우 테이블은 많지만 적은 열을 가지도록 구성하여, 많은 양의 데이터를 분석하는 경우, 테이블을 적지만 많은 수의 열을 가지도록 합니다.
- 쿼리를 효율적으로 수행 할 수 있는 인덱스 구성이 되어 있는지 확인함.
- 데이터 베이스가 테이블을 검색할 때 모든 내용을 검색하는 것이 아닌 인덱스를 참조하여 검색을 할 수 있도록 하면 검색 시간을 줄일 수 있음.
- 사용 목적에 맞는 데이터베이스 엔진을 사용하는지 확인
- MariaDB에서 InnoDB엔진과, MyISAM 엔진을 사용할 수 있으며, 각 엔진의 특성에 의해 성능이 달라짐.
- 테이블들이 적절한 Row Fromat을 사용하는지 확인 -> 적절한 Row Format(압축)을 사용하면 적은 디스크 공간을 사용하기 때문에 디스크 I/O의 성능이 좋아지는 효과를 가져오게 됨.
- 캐싱 메모리의 크기가 올바르게 구성되어 있는지 확인 -> 자주 액세스하는 데이터를 보유할 수 있는 크기의 메모리가 구성되어 있으면서 메모리의 과부하가 걸리지 않을 만큼 메모리 사이즈가 크게 설정되어 있지 않은지 확인
MariaDB
- 오픈 소스의 관계형 데이터베이스 관리 시스템
- 상업적 사용과 관계없이 GPLv2에 따라 라이선스가 부여된 무료 오픈 소스 소프트웨어로 사용 가능
- MySQL을 만든 개발자이며, 오라클 업체에서 인수 및 상용화되고 나서부터는 MariaDB로 대체되고 있음.
- MariaDB 핵심 개발자가 나와서 MySQL과 동일한 소스 코드를 기반으로 개발하였기 때문에 API의 명령어는 거의 동일함.
- 라이선스비용이 없다고 MariaDB 많이 쓰진 않고, 사실 오라클이 많이 사용됨.
-> 라이선스 비용을 내고 관리받는 것을 선호화는 회사가 많음.
'개발 > 기타' 카테고리의 다른 글
Hypervisor의 overcommit (0) | 2024.07.20 |
---|---|
왜 Web server와 WAS의 분리가 필요할까? (1) | 2024.07.14 |
[Github Actions] paths 로 폴더 별로 트리거 하기 (0) | 2023.11.18 |
Slack bot으로 유저에게 1:1 DM 보내기 (0) | 2023.10.21 |
Selenium으로 웹 크롤링 시도하기 (0) | 2023.07.26 |