본문 바로가기

데이터베이스(DA, AA, TA)/MySQL

(25)
[MySQL] 적절한 스토리지엔진 선택 RDBMS(Relational Database Management System)는 표 형식으로 데이터를 저장하고 대부분은 SQL 언어로 데이터 조작을 수행하는 시스템입니다. 다양한 데이터를 저장한다거나 강력한 질의를 할 수 있어서 가장 범용성이 높은 스토리지입니다. RDBMS의 오픈소스 구현은 MySQL이나 PostgreSQL 등이 있으며, 두 다 실제 운용환경에서 널리 사용되고 있습니다. 많은 기업에서 MySQL을 범용 스토리지로 사용하고 있습니다. RDMBS 종류마다 각기 특성이 있는데, 최근에는 기능적, 성능적으로 팽팽하게 경쟁하고 있으니, 지금까지 축적된 노하우 등을 기준으로 선택하면 됩니다. MySQL 주요 스토리지 엔진에는 MyISAM과 InnoDB, Maria가 있습니다. MyISAMMyIS..
[MySQL] 쿼리 실행 구조 및 쿼리 캐시 쿼리 실행 구조 쿼리 실행구조는 기능별로 다음과 같이 나눠질 수 있습니다. 1) 파서파서는 사용자 요청으로 들어온 쿼리 문장을 토큰(MySQL이 인식할 수 있는 최소 단위의 어휘나 기호)으로 분리해 트리 형태의 구조로 만들어 내는 작업을 의미합니다. 쿼리 문장의 문법 오류는 이 과정에서 발견되어 사용자에게 오류 메시지를 전달하게 됩니다. 2) 전처리기파서 과정에서 만들어진 파서 트리를 기반으로 쿼리 문장에 구조적인 문제점이 있는지 확인합니다. 각 토큰을 테이블 이름이나 컬럼 이름 또는 내장 함수와 같은 개체를 매핑해 해당 객체의 존재 여부와 객체의 접근 권한 등을 확인하는 과정을 이 단계에서 수행합니다. 실제 존재하지 않거나 권한상 사용할 수 없는 개체의 토큰은 이 단계에서 걸러집니다. 3) 옵티마이저옵..
[Real MySQL] MySQL 아키텍처 보호되어 있는 글입니다.
[MySQL] MySQL 사용시 하지 말아야 할 13가지 MySQL 쓰면서 하지 말아야 할 것 17가지 ( https://blog.lael.be/post/370 ) 1. 작게 생각하기 (MySQL ecosystem, 캐싱 사용, 확장 가능한 아키텍처, 복제/파티셔닝 고려) 2. EXPLAIN 실행계획 안보기 3. 잘못된 데이터 타입 선택 4. 스토리지 엔진 이해없이 사용 (단일 엔진으로 전체 아키텍처를 결정했다면 대부분 최적이 아님 / 엔진별 장단점 공부 필수) 5. 인덱스 레이아웃 이해없이 사용 6. 쿼리 캐시에 대한 이해없이 사용 7. Stored Procedure를 무분별한 사용 (다른 RDBMS와 다르게 connection thread에서 실행 계획이 세워짐 - ETL 타입 프로시저 - 아주아주 복잡하지만 자주 실행되지 않는 것 - 한번 요청할 때마다 ..
[MySQL] 프로시저(스토어드 프로그램)의 장단점 1. 스토어드 프로그램이란?MySQL에서는 절차적인 처리를 위해 스토어드 프로그램을 이용할 수 있습니다. 스토어드 프로그램은 스토어드 루틴이라고도 하는데, 스토어드 프로시저와 스토어드 함수 그리고 트리거와 이벤트 등을 모두 아우르는 명칭입니다. 스토어드 프로그램 가운데 스토어드 프로시저나 함수는 MySQL 5.0부터 추가된 기능이며, 스케줄러는 MySQL 5.1부터 추가된 기능입니다. 그럼 스토어드 프로그램(프로시저, 함수, 트리거)의 장점과 단점을 살펴보도록 하겠습니다. 1-1. 스토어드 프로그램의 장점- 데이터베이스의 보안 향상MySQL의 스토어드 프로그램은 자체적인 보안 설정 기능을 가지고 있으며, 스토어드 프로그램 단위로 실행 권한을 부여할 수 있습니다. 이러한 보안 기능을 조합해서 특정 테이블의..