MYsql vs MSsql vs TIBERO

sysop·2021년 3월 10일
2

데이터베이스

목록 보기
2/8

MySQL

https://www.mysql.com/products/enterprise/mysql-datasheet.ko.pdf
MySQL 특징은?

  • 사용하기가 타 DBMS보다 쉽습니다.
  • 매우 적은 오버헤드를 사용합니다.
    	> 	 - MySQL은 노트북에 단지 1MB의 RAM만 사용합니다
     		 - ORACLE 9i를 설치하는 경우 128MB를 사용합니다.
  • 고급 기능을 지원합니다.

MySQL Commercial License

상용 라이센스는 사용자 어플리케이션의 소스 코드가 공개되는 것을 원하지 않는 조직과
Oracle Corporation 사이의 계약입니다.
상용 라이센스를 가진 사용자는 그에 상응하는 서비스를 보증받습니다.
또한 상용 라이센스를 가진 사용자가 어플리케이션을 오픈소스로 만드는 데에는 아무런 제약이 없습니다.

사용자의 어플리케이션이 무료 소프트웨어로 등록된 GPL에 상응하는 무료 소프트웨어 라이센스가 아니거나, OSI호환이 아닌 경우에 MySQL을 배포하고자 한다면, 먼저 MySQL 제품에 대한 상용 라이센스를 획득해야 합니다.

MySQL을 배포하는 대표적인 예는 다음을 포함합니다.

MySQL을 포함하고 있는 소프트웨어를 고객에게 팔아 그 소프트웨어를 고객이 소유한 장비에 설치하는 경우
고객이 소유한 장비에 기본적으로 MySQL을 설치해야하는 소프트웨어를 파는 경우
MySQL을 포함하고 있는 하드웨어 시스템을 고객에게 팔아서 고객이 있는 곳에 설치하는 경우

장단점

MYsql VS ORACLE. SQL 비교
https://startingpitcher.tistory.com/15?category=113323
1. 윈도으즈 리눅스 유닉스 등 다양한 운영체제에서 설치 할 수 있다.
2. 오픈소스로 이루어져있는 무료 프로그램(상업적 사용 시 비용있음)
3. 가격등의 장점을 앞세워 다수의 중소기업에서 사용 중.

성능

성능상의 주요 기준 :
응답시간, 트랜잭션 처리율, 전체 데이터베이스에 대한 보고서 생성 시간, 인덱스를 생성하는데 성능의 저하 가 일어나는 경우가 대부분이다. 잘 만든 DB는 얼마나 설계를 잘 진행하였는가를 반영한다.

안전성

구조적

DB Tunming
1. Tuning 이란?

  • SQL : 정확한 데이터의 추출이 목적

  • SQL Tuning : SQL을 기반으로 효율적으로 데이터를 추출하는 것

  • 데이터베이스튜닝은 얼마나 빨리, 얼마나 정확하게, 그리고 얼마나 효율적으로 찾는가에 있다.

  1. 데이터베이스 성능 튜닝

(1) 성능에 영향을 주는 컴퓨팅 환경에서의 주요 개발 요소들

  • Downsizing : 메인 프레임 환경에서 좀 더 작은 시스템을 사용하게 될 때는 이전과 같은 성능을 기대할 수는 없으므로 튜닝은 필수 요소

  • Client-server and distributed databases : 시스템이 팽창하면서 새로운 H/W 환경이나 OS, 네트워크 등을 포함하게 된다면 전반적인 컴퓨팅 환경을 보다 더 잘 파악해야 함.

  • 병렬 서버 : 데이터베이스가 공유된 디스크를 접근한다면 Locking 문제를 야기 할 수 있음.

  • Graphical User Interfaces : 시스템을 좀 더 사용하기 쉽게 하므로 하나의 시스템에는 보다 많은 동시 사용자들이 들어오게 됨.

(2) 왜 데이터베이스 성능 튜닝을 하는가?

추가적인 장비 구입 억제, 제품 비용 감소, 자원의 낭비 억제, 보다 경쟁적인 우위를 가질 수 있음, 조직내의 처리량 증가

(3) 누가 데이터베이스 성능 튜닝을 하는가

  • 응용 설계자 : 응용시스템에서 모든 사용자들이 데이터의 흐름을 이해할 수 있도록 시스템을 디자인 함

  • 응용 개발자 : Statement Tuning 과정에서 응용 모듈과 SQL문을 쉽고 빠르게 확인할 수 있도록 구현

  • DBA : 비정상적인 시스템 성능 확인과 수정을 위해 시스템 Activity를 주의 깊게 모니터링하고 시스템을 튜닝

  • 하드웨어/소프트웨어 관리자 : 사용자들이 효과적으로 시스템을 디자인하고 관리할 수 있도록 하드웨어/소프트웨어 환경을 튜닝

(4) 언제 데이터베이스 성능 튜닝을 하는가

시스템을 개발하기 위해서는 계획, 분석/설계 개발, 검수, 운영의 단계를 거치며 각 단계에서의 튜닝을 고려

  • 시스템 계획단계 : 하드웨어/소프트웨어 자원, 데이터베이스 자원, 사용자 자원

  • 분석/설계단계 : 어디에서 데이터를 비 정규화 할 것인가? 어디에 성능 증가를 위한 데이터의 중복을 도입할 것인가?

  • 개발단계 : Optimizer를 선택할 때, SQL 문장을 Tuning시, 적용업무에 가장 적합한 잠금(Locking)의 범위 결정 시

  • 검수단계 : 실제 운영상황과 동일한 운영환경에서 테스팅 수행

  • 운영단계 : 시스템을 계속 운영하면서 성능과 시스템의 사용자 요구사항을 분석하며, 여러 가지 도구를 이용하여 시스템을 지속적이고 효과적으로 Tuning하도록 함.

튜닝의 최적 시점 : 분석/설계 단계, 최소의 비용으로 최대의 효과를 기대할 수 있다. 모델링이 중요

(5) 데이터베이스 성능 튜닝의 목표 설정은 어떻게?

  • 성능 목표의 정확한 정의가 필요

  • 가장 중요한 요소를 설정

  • 성능 향상을 위한 선택 과정이 용이한가를 조사

  1. 개발단계 이후 튜닝을 실시하기 전 선행 작업

(1) Tuning의 절차는 어떻게 될까?

  • 시스템에 문제가 있는지 분석

  • 문제를 일으킨 원인 분석

  • 목표 설정

  • 튜닝 작업 실시

  • 결과를 분석하여 정리

(2) Explain Plan 이란?

  • Explain Plan : SQL문을 분석하고 해석하여 실행계획을 수립, 실행계획 테이블에 저장 해주는 명령

  • 실행계획: SQL이 요구한 데이터를 추출하기 위해 오라클이 차례로 수행하는 작업방법

  • Explain Plan을 확인함으로써 index가 적용되어 지는 순서가 확인 가능하며 사용자들이 SQL문의 액세스 경로를 확인할 수 있음.

(3) Optimizer란?

  • Rule Based Optimizer

데이터베이스에 접근하는 경로를 찾는데, 사전 정의된 규칙을 사용

예측가능하고 통제 가능하므로 대부분의 DBA, 프로그래머들이 선호

  • Cost Based Optimizer :

데이터베이스 정보를 활용.

데이터베이스 정보들은 생성된 테이블을 ANALYZE명령에 의해 분석된 후에야 활용 가능.

ANALYZE 명령은 과부하를 초래하기 때문에 항상 최선의 선택은 아님.

(4) SQL_TRACE의 방법

SQL_TRACE 설정 -> 세션별로 실행통계 모아짐 -> TRACE 파일 생성 -> TKPROF -> 출력

  • SQL_TRACE의 지정 : INIT.ORA 의 파라메터를 이용하여 설정, 세션단위로도 설정이 가능

(5) TKPROF란?

  • SQL_TRACE를 통하여 생성된 TRACE 파일은 TKPROF 유틸리티를 통하여 분석이 가능한 파일형식으로 전환하여 출력하게 되며 출력된 파일을 사용자가 분석하게 된다.

  • TRACE의 종류 : SQL문장 분석을 위한 TRACE, 시스템 이상 시 발생하는 TRACE

(6) Access Path

  • SQL문에서 WHERE 조건문의 형태를 분석하는 자료인 ACCESS PATH를 조사함으로써 시스템 전체적으로 각 TABLE의 엑세스 형태를 분석 기록한다. ACCESS PATH는 주요 컬럼에 대하여 조사 및 기록한다. 또한 조사한 ACCESS PATH는 인덱스 검증 및 클러스터링을 검토하는 중요한 자료로 쓰이게 된다.

내용 정리

  • 왜 튜닝을 하는가?
  • 튜닝의 장점

추가적인 장비 구입을 억제

제품 비용을 감소시키며 자원의 낭비 억제

보다 경쟁적인 우위를 가질 수 있음

조직내의 처리량 증가

사용자들은 보다 생선적이 될 수 있음

-튜닝은 언제

시스템의 성능 향상을 기대하고자 할 경우

현 시스템에 대해 불만이 없으면 할 필요 없음

  • 튜닝은 누가 언제 하는가?
  • 응용 설계가의 Tuning은? - 분석/설계 단계

관계형 데이터베이스를 설계하는 목적은 할 수 있는 최상의 상태로 데이터를 정규화 하는데 있으나 고전적인 데이터베이스 설계의 관점에서 공통적인 개념들을 적용해야 할 필요도 있음.

어디에서 데이터를 비 정규화 할 것인가

어디에 성능 증가를 위한 데이터의 중복을 도입할 것인가

프로그램을 후에 변경하기 쉽고 튜닝하기 위하여 반드시 단위화 해야 함

작은 프로그램은 일반적으로 더 적은 메모리를 필요로 한다.

단위화는 유지 또는 간편하게 한다.

  • 응용 개발자의 Tuning은? - 개발/구현 단계

개발에 사용되는 SQL 문장을 Tuning함

개발자는 Oracle을 사용할 경우라면, EXPLAIN PLAN이나 TKPROF등의 유틸리티의 사용에 친숙해지고 그들의 프로그램에 광범위하게 적용할 수 있어야 한다.

  • DBA의 Tuning은? - 개발/구현 단계

사용하고자 하는 최적화 기술(Optimizer)을 선택

비용기반 최적화(Cost-based Optimizer)는 병렬질의나 분산 데이터베이스를 선택했을 때 보다 좋은 이점을 가짐.

비용기반 최적화의 가장 좋은 특징은 경험이 적은 프로그래머가 사용했을 때 규칙기반 최적화(Rule-based Optimizer)보다 좀 더 빠른 시간 내에 Tuning된 code를 얻을 수 있다.

데이터베이스를 효과적으로 관리

성능에 관련된 문제를 능동적으로 대처한다.

수시로 최종사용자가 사용하는 것처럼 데이터베이스의 여러 프로시저 등을 실행하고 반응시간 등을 관찰한다.

비용

싱글 vs 듀얼 라이센스

듀얼라이선스란?
2 가지의 라이선스 정책을 선택적으로 사용이 가능한 라이선스입니다. 이용자는 자신의 프로젝트 정책에 맞추어 라이선스를 선택하여 사용할 수 있습니다. (MIT, GPL v2)는 이용자는 자신의 프로젝트에 맞춰 해당 프로젝트를 MIT 혹은 GPL v2로 가져와 사용할 수 있습니다.
  • 다중 라이선스를 선택하는 이유 중 하나는 자유 소프트웨어를 취급하는 비즈니스 모델이기 때문이다. 이 모델은 독점 응용 프로그램을 만드는 경우 독점 라이선스를 선택하고 카피레프트 응용 프로그램을 작성하는 경우에만 소프트웨어/오픈 소스 라이선스를 선택할 수 있도록 한다. 일반적으로 소프트웨어 권리자는 자유/오픈 소프트웨어 버전을 무료로 배포하고 광고 라이선스를 법인에 제공함으로써 이익을 얻는다. 이 모델은 셰어웨어 모델과도 관련성이 있다.

https://shop.oracle.com/apex/product?p1=MySQL
MySql 비용

대형 Proj 사례

사례

미디어위키
드루팔
위키백과
구글(검색 엔진은 제외)
페이스북
트위터
플리커
노키아닷컴
유튜브
카카오 https://byline.network/2017/10/17-6/
profile
40대에 은퇴해, 제주살이를 꿈꾸는 Fire족

1개의 댓글

comment-user-thumbnail
2021년 3월 10일

Dev.nuts 뜻이먼가요

답글 달기