Programming/Database System24 [Database] MySQL ORDER BY 방식 비교와 성능 목차인덱스를 이용한 정렬 (extra에 별도 표기 없음)driving table만 정렬 (Using filesort)임시 테이블을 이용한 정렬 (Using temporary; Using filesort) MySQL에서 ORDER BY (정렬)을 처리하는 방식은 크게 2가지가 있다. 인덱스를 활용하는 인덱스 정렬과, 메모리 (혹은 디스크까지)를 활용해서 정렬하는 filesort이다. 이 2가지 방법을 토대로 옵티마이저는 크게 세 가지 형태로 정렬을 진행할 수 있는데 결론부터 말하자면,가능하다면 인덱스를 사용한 정렬로 유도 하고, (인덱스 정렬)그렇지 못하면 최소한 드라이빙 테이블만 정렬해도 되는 수준으로 유도하는 것이 좋은 튜닝방법이다. (filesort)그렇지 않으면 임시 테이블을 이용해 정렬하게 되는.. 2024. 7. 16. [Database] 빅 데이터 (Big Data) 1장 - Big Data Storage System 전통적인 application은 관계형 데이터베이스 (RDBMS)를 기반으로 구축할 수 있었다. 그러나 현대 application은 관계형 데이터베이스 구조에 딱 맞는 데이터만을 다루지 않는다. 더 이상 데이터는 하나의 엔터프라이즈로부터 생산되지 않는다. 즉 빅데이터가 나타났으며 이 빅데이터를 다루기 위한 여러 데이터베이스 시스템 종류들이 등장한다. 따라서 빅 데이터를 정의, 분류하고 그에 따른 적절한 데이터베이스 시스템들을 훑어본다. 전체적인 흐름은 데이터베이스 시스템 (Abraham Silberschatz , Henry F. Korth , S. Sudarshan 저)의 10장 Big Data을 따른다. 목차 빅 데이터 (Big Data) 이전의 데이터 빅 데이터 쿼리 (Query) 빅 데이터 저장소 .. 2024. 4. 13. [Database] 데이터 타입 비교 : char vs varchar 목차 SQL 표준에서의 char, varchar 예시 1. Oracle 예시 2. MySQL SQL 표준에서의 char, varchar SQL 표준에서 정의한 built-in type은 다음과 같다. char(n) : character, 고정길이 형태 문자열, n (bytes)은 사용자가 정의 varchar(n) : character varying, 가변길이 형태 문자열, 사용자는 최대길이 n (bytes)을 정의 nvarchar (n) : 다국어 데이터를 저장할 수 있는 varchar int samllint numeric(p, d) real, double precision folat(n) char와 varchar에 대해 간단히 비교해보려 한다. 둘 다 문자열 데이터 타입이고, null을 삽입할 수 있다.. 2024. 1. 17. [Database] Oracle Database Index (19c 기준) 목차 오라클의 인덱스 오라클에서 지원하는 데이터베이스 인덱스 B-Tree 인덱스 Bitmap 인덱스 Funtion-Based 인덱스 Application Domain 인덱스 Index-Organized Tables 오라클의 인덱스 오라클 인덱스는 스키마 object로서 원천 데이터로부터 논리(물리)적으로 분리되어 있다. 그러므로 인덱스를 Drop 하면 여전히 데이터에는 액세스가 가능하다. (그러나 느리겠지) 인덱스는 빠르게 single row 로 찾아갈 수 있는 길이다. 오로지 실행 속도에 영향을 준다. 찾으려는 데이터 값이 인덱싱 되어있다면 인덱스를 통해 해당 값이 포함된 row로 곧장 갈 수 있다. 인덱스는 테이블의 1개 이상의 컬럼에 생성할 수 있다. 인덱스는 disk I/O를 줄여주는 여러 대안 .. 2024. 1. 8. [Message Brokers] Streaming data와 Pub / Sub system 목차 Streaming Data Streaming Data를 쿼리하는 방법 Algebraic Operations Publish / Subscribe system [참고] 트위터의 데이터 처리 방식 Streaming Data : 지속적인 데이터 흐름 웹 서비스에서의 데이터는 주로 데이터베이스 시스템에서 관리된다. Relational Database Management System (RDBMS, 관계형 데이터베이스)가 대표적이다. 데이터베이스에 저장된 데이터를 불러오기 위해 많은 client들이 질의 (query)하는데 이 질의를 지속적으로 (혹은 주기적으로) 해야 하는 데이터들이 있다. 예를 들면, SNS 게시글은 데이터가 추가될 때마다 엄청난 질의가 들어올 것이다. 호날두가 인스타그램에 글을 올리면 해당.. 2023. 11. 25. [Database] 인덱스 (Index) 6장 : 쓰기에 최적화된 인덱스 https://kghworks.tistory.com/153 [Database] 인덱스 (Index) 5장 : Multiple-key Access (다중 키) https://kghworks.tistory.com/152 [Database] 인덱스 (Index) 4장 : Hash Index https://kghworks.tistory.com/151 [Database] 인덱스 (Index) 3장 : B+-Tree Index 기본 https://kghworks.tistory.com/150 [Database] 인덱스 (Index) 2장 : Ordered Index htt kghworks.tistory.com 여기서부터는 심화 포스팅이다. B+-Tree index는 쓰기 성능이 떨어지므로 쓰기 성능에 특화되어 있는 .. 2023. 11. 8. 이전 1 2 3 4 다음