반응형 Database25 MyISAM 스토리지 엔진 아키텍처 MyISAM 스토리지 엔진 아키텍처 MyISAM 스토리지 엔진의 성능에 영향을 미치는 요소인 키 캐시와 운영체제의 캐시/버퍼에 대해 살펴보자. 키 캐시 InnoDB 버퍼 풀과 비슷한 역할을 하는 것이 MyISAM의 키 캐시다. 하지만 이름 그대로 키 캐시는 인덱스만을 대상으로 작동하며, 또한 인덱스의 디스크 쓰기 작업에 대해서만 부분적으로 버퍼링 역할을 한다. 키 캐시가 얼마나 효율적으로 작동하는지는 다음 수식으로 확인할 수 있다. 키 캐시 히트율 (Hit rate) = 100 - (Key_reads / Key_read_requests * 100) Key_reads는 인덱스를 디스크에서 읽어 들인 횟수를 저장하는 상태 변수이며, Key_read_requests는 키 캐시로부터 인덱스를 읽은 횟수를 저장하.. Database/MySQL 2022. 11. 27. InnoDB 스토리지 아키텍처 2023.10.10 복습 리팩토링 시작 InnoDB 스토리지 아키텍처 InnoDB는 MySQL에서 사용할 수 있는 스토리지 엔진 중 거의 유일하게 레코드 기반의 잠금을 제공하며, 그 때문에 높은 동시성 처리가 가능하고 안정적이며 성능이 뛰어나다. 이제 InnoDB 스토리지 엔진의 주요 특징들과 함께 아키텍처를 살펴보자. 프라이머리 키에 의한 클러스터링 InnoDB의 모든 테이블은 기본적으로 프라이머리 키를 기준으로 클러스터링 되어 저장된다. 즉 프라이머리 키 값의 순서대로 디스크에 저장된다는 뜻이며, 모든 세컨더리 인덱스는 레코드의 주소 대신 프라이머리 키의 값을 논리적인 주소로 사용한다. 프라이머리 키가 클러스터링 인덱스이기 때문에 프라이머리 키를 이용한 레인지 스캔은 상당히 빨리 처리될 수 있다. 결.. Database/MySQL 2022. 11. 26. MySQL 엔진 아키텍처 2023.10.9 복습 리팩토링 시작 Real MySQL을 읽기 시작했는데, 이에 관한 공부 기록을 남겨보려고 합니다. 4장 아키텍처파트의 MySQL 엔진 아키텍처부터 시작하겠습니다. MySQL 엔진 아키텍처 MySQL 전체 구조 이미지 MySQL 서버는 크게 MySQL 엔진과 스토리지 엔진으로 구분할 수 있다. 이 둘을 모두 합쳐서 MySQL 또는 MySQL 서버라고 부른다. MySQL 엔진 MySQL엔진은 커넥션 핸들러, SQL 인터페이스, SQL 파서, SQL 옵티마이저, 캐시와 버퍼로 이루어진다. 표준 SQL인 ANSI SQL 문법을 지원하므로 타 DBMS에서 사용할 수 있다. 커넥션 핸들러를 사용해 접속 및 쿼리 요청을 처리하고 옵티마이저로 쿼리를 최적화한다. 스토리지 엔진 MySQL 엔진은 요.. Database/MySQL 2022. 11. 25. 데이터 과학과 빅데이터 2022. 12. 14. 01:30 수정 및 복습 시작 데이터 과학 데이터 과학은 필수적이다. 4차 산업혁명 시대로 진입하며 빅데이터, 사물 인터넷, 인공지능 등 핵심 기술의 중심에 데이터가 있다. 21세기의 원유는 즉 데이터다. 전통적인 방식으로 데이터를 수집하고 저장하는데 한계가 있다. 현대 데이터는 방대한 규모와 다양한 형태가 존재한다. 단순히 데이터를 분류하고 검색하는 것을 넘어, 방대한 양의 데이터 속에 숨겨진 규칙과 패턴을 찾아내 문제 해결에 활용하고 미래의 일을 예측하여 미리 준비하기를 우리는 원하고 있다. 이 말은 다양해진 데이터 활용에 대한 요구가 늘어난다는 것이다. 데이터 과학의 개념은 데이터를 수집한 후 분석을 통해 데이터를 정확히 이해함으로써 그 속에 숨겨진 새로운 지식을 발견하고,.. Database/Database 기초 2021. 11. 29. 데이터베이스 응용 기술 2022. 12. 14. 01:00 수정 및 복습 시작 객체지향 데이터 베이스 객체지향 데이터 모델 객체지향 개념에 기반을 둔 데이터 모델이다 객체와 객체 식별자, 속성과 메서드, 클래스, 클래스 계층 및 상속, 복합 객체 등을 지원한다. 다양한 응용 분야의 데이터 모델링을 위한 새로운 요구 사항을 지원한다. 의미적으로 관계가 있는 데이터베이스 구조를 표현하기 위한 강력한 설계 기능을 제공한다. 특수한 몇몇 분야에서 사용된다. 객체와 객체 식별자 객체 지향 데이터 모델에서 객체(Object)는 현실 세계에 존재하는 개체를 추상적으로 표현한 것이다. 객체 지향 데이터 모델을 구성하는 기본 요소다. 각 객체는 시스템 전체에서 유일하게 식별될 수 있는 객체 식별자를 가지고 있다. 객체 간의 관계는 객체 식별자.. Database/Database 기초 2021. 11. 22. 보안과 권한 관리 2022. 12. 14. 00:30 수정 및 복습 시작 데이터베이스 보안 데이터베이스 보안의 목표는 조직에서 허가한 사용자만 데이터베이스에 접근할 수 있도록 통제하여 보안을 유지하는 것이다. 물리적 환경에 대한 보안, 권한 관리를 통한 보안, 운영 관리를 통한 보안이 필요하다. 물리적 환경에 대한 보안은 말 그대로 자연재해 같은 데이터베이스에 물리적 손실을 발생시키는 위험으로부터 데이터베이스를 보호하는 것이다. 딱히 중요한 내용은 아니다. 권한 관리를 통한 보안은 접근이 허락된 사용자만 권한 내에서 데이터베이스를 사용하도록 보호한다. 계정이 발급된 사용자만 데이터베이스에 접근할 수 있도록 통제하고, 사용자별로 사용 범위와 수행 가능한 작업 내용을 제한한다. 운영 관리를 통한 보안은 접근이 허락된 사용자가.. Database/Database 기초 2021. 11. 15. 회복과 병행 제어 2022. 12. 13. 23:30 수정 및 복습 시작 데이터베이스 관리 시스템은 데이터베이스가 항상 정확하고 일관된 상태를 유지할 수 있도록 다양한 기능을 제공하는데, 그 중심에는 트랜잭션이 있다. 트랜잭션을 관리함으로써 데이터베이스의 회복과 병행 제어가 가능해져, 결과적으로 데이터베이스가 일관된 상태를 유지할 수 있다. 트랜잭션 트랜잭션은 하나의 작업을 수행하는 데 필요한 데이터베이스의 연산들을 모아놓은 것으로, 데이터베이스에서 논리적인 작업의 단위가 된다. 트랜잭션은 데이터베이스에 장애가 발생했을 때 데이터를 복구하는 작업의 단위도 된다. 데이터베이스의 무결성과 일관성을 보장하기 위해 작업 수행에 필요한 연산들을 하나의 트랜잭션으로 제대로 정의하고 관리해야 한다. 트랜잭션의 특징 트랜잭션의 특성으로.. Database/Database 기초 2021. 11. 8. 정규화 2022. 12. 13. 22:40 수정 및 복습 시작 정규화 정규화는 데이터베이스를 설계한 후 설계 결과물을 검증하기 위해 사용하기도 한다. 두 가지 설계 방법(관계 데이터 모델 기반 데이터베이스 설계, 정규화)은 데이터베이스 설계 결과물이 비슷한 수준이다. 상황에 따라 적절한 방법을 선택하면 된다. 데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입, 수정, 삭제 연산을 수행할 때 부작용이 발생할 수 있다. 이러한 부작용을 이상 현상이라고 한다. 이상 현상을 제거하면서 데이터베이스를 올바르게 설계해나가는 과정이 정규화다. 이상 현상 (3가지) 삽입 이상: 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제. 갱신 이상: 중복 투플 중 일부만 변.. Database/Database 기초 2021. 11. 1. 데이터베이스 설계 2022. 12. 13. 22:00 수정 및 복습 시작 데이터베이스 설계 데이터베이스 설계란 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정이다. 관계 데이터베이스의 대표적인 설계 방법으로는 2가지가 있다. E - R 모델과 릴레이션 변환 규칙을 이용한 설계 정규화를 이용한 설계 (차후에 다루어보겠다) 요구 사항 분석, 개념적 설계, 논리적 설계, 물리적 설계, 구현 순서로 이루어진다. 설계 1 단계 : 요구 사항 분석 목적: 사용자의 요구사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악. (업무에 필요한 데이터가 무엇인지, 그 데이터에 어떤 처리가 필요한지 등을 고려) 결과물: 요구 사항 명세서 주요 작업: 데이터베이스를 실제로 사용할 주요 사용자의 범위를 결정. 사용자가 조.. Database/Database 기초 2021. 10. 26. 관계 데이터 연산 2022. 12. 13. 21:00 수정 및 복습 시작 데이터 모델 데이터 모델은 데이터 구조, 연산, 제약조건으로 구성된다. 관계 데이터 모델에서 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것으로, 데이터베이스 시스템의 구성 요소 중 데이터 언어의 역할을 한다. 관계 데이터 모델의 연산을 간단히 관계 데이터 연산이라고도 한다. 관계 데이터 연산 대표적인 관계 데이터 연산으로 관계 대수와 관계 해석이 있다. 관계 대수와 관계 해석은 원하는 데이터를 얻기 위한 처리 절차를 얼마나 자세히 기술하느냐에서 큰 차리를 보인다. 관계 대수: 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어다. 관계 해석: 관계 해석은 원하는 결과를 얻기 위해 처리를 원하는 데.. Database/Database 기초 2021. 9. 28. 데이터 모델링과 관계 데이터 모델 2022. 12. 13. 08:40 수정 및 복습 시작 데이터 모델링과 데이터 모델 데이터 모델링이란 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정이다. 우리는 저장할 개체를 데이터베이스로 변환할 때 그 개체에서 데이터베이스에 저장하여 관리할 만한 가치가 있는 중요한 데이터만 찾아내야 한다. 예를 들어 기린을 기준으로 한다. 그럼 발이 4개이고, 초식 동물이며, 몸에 무늬가 있고, 목이 굉장히 길다. 이렇게 누가 들어도 기린을 상상할 수 있는 데이터를 찾아야 한다. 이 과정을 추상화라고 한다. 현실세계에서 기린에 대한 중요 데이터를 추출하여 앞선 과정과 같이 개념 세계로 옮기는 작업을 데이터 모델링 과정 중에서도 개념적 모델링이라 한다. 그리고 개념 세계의 데이터를 데이터베.. Database/Database 기초 2021. 9. 16. 데이터베이스 시스템(DBS) 2022. 12. 13. 00:30 수정 및 복습 시작 데이터베이스 시스템 데이터베이스 시스템은 데이터베이스에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템이다. 데이터의 집합은 데이터베이스며, 데이터 베이스 관리 시스템은 데이터베이스에 저장돼 데이터가 일관되고 무결한 상태로 유지되도록 관리하는 역할을 한다. 데이터베이스 시스템은 데이터베이스와 데이터 베이스 관리 시스템을 이용해 조직에 필요한 정보를 제공해주는 전체 시스템이다. 제일 큰 개념이라고 생각하면 되겠다. 데이터베이스 구조 스키마 스키마는 데이터베이스에 저장되는 데이터 구조의 제약조건을 정의한 것이다. 정의된 스키마에 따라 데이터베이스에 저장된 실제 값이 인스턴스(instance)이다. 미국의 표준화 기관인.. Database/Database 기초 2021. 9. 13. 이전 1 2 3 다음 반응형