[DB] Index란 (feat. B+-Tree)
·
Engineering/CS
DB의 성능DB는 많은 사람들이 공통으로 사용하는 데이터 모음이기 때문에, 대량의 데이터가 조회/저장되는 일이 빈번하게 발생한다. 그리고 이를 빠르게 진행하는 것이 무엇보다 중요하다. 이때 DB의 성능과 관련된 핵심이 디스크 I/O를 어떻게 줄이느냐이다.디스크 I/O = 플래터(원판)을 돌리고, 디스크 헤더를 이동하여 데이터를 읽는 것을 의미한다.물론 순차 I/O가 랜덤 I/O보다 빠르다. 하지만 현실은 대부분 랜덤 I/O이며, 이를 순차로 바꾸어 보자는 아이디어에서 Index와 쿼리 튜닝이 나타났다. Index란?Index란 추가적인 저장 공간을 활용하여 DB 테이블의 검색 속도를 향상시키기 위한 자료구조이다.만약 DB 테이블의 모든 데이터를 검색해서 원하는 결과를 가져오려면 시간이 오래 걸릴 것이다..
[PostgreSQL] Python에서 다중 행을 Insert하는 다양한 방법과 비교
·
Engineering/CS
🤔 Python으로 DB에 데이터를 입력할 때, 다중 행을 입력하는 경우가 많을 것이다. 이를 어떻게 실행해야 가장 빠르게 입력할 수 있을까? 😀 이러한 고민에 3가지 방법을 실행해봤고, 각 방법이 시간이 어떻게 차이나는 지 공유해보고자 한다. 먼저 입력할 데이터와 DB를 연결하자.사용될 데이터는 10만개의 행과 3개의 열을 가진 Integer 데이터를 사용할 것이다. DB는 PostgreSQL로 구축한 DB를 활용할 것이다.import timeimport psycopg2N = 100000data = [(i,i,i) for i in range(N)]print('data length: ', len(data)) #10만개의 행db = psycopg2.connect(host='localhost', dbna..
[DB] SQL과 NoSQL
·
Engineering/CS
데이터를 다룸에 있어서 SQL과 NoSQL을 필수적으로 접해야하는 언어이고, 그 차이도 분명히 할 필요가 있다고 생각했다. 이 전에 정리를 했지만, 좀 더 자세히 정리를 해보기로 했다! 😤 https://deep-flame.tistory.com/7 [DB] 데이터베이스 기초 데이터베이스란? 데이터베이스란 여러 사람들이 공유하고, 사용될 목적으로 통합하여 관리되는 데이터의 집합 데이터 베이스를 사용하기 이전에는 파일 시스템을 이용하여 데이터를 관리했다. deep-flame.tistory.com SQL Structured Query Language의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어이다. 👉 SQL 문법의 종류 DDL (Data Definitio..
[CS] 객체 지향 프로그래밍
·
Engineering/CS
객체 지향 프로그래밍 이란? 현실 세계는 사물(객체)로 이루어져있고, 발생하는 사건들은 사물간의 상호작용을 통해 이루어진다. 여기에서 착안하여 클래스를 이용해 연관있는 객체의 속성과 행위를 하나로 묶고, 그 객체들 간의 상호작용을 구현하는 프로그래밍 방법이다. 장단점 장점 재사용성 남이 만든 클래스를 가져와서 그 속의 속성과 함수를 사용할 수 있고, 상속을 통해 확장하여 사용할 수 있다. 코드 중복 제거 코드의 중복을 제거하여 코드 불일치를 방지할 수 있다. 유지보수 많은 인스턴스들이 한 클래스 내 변수와 함수를 사용한다. 함수에 버그가 있다면 그 부분만 수정하면 따로 인스턴스들의 수정이 필요 없다. 단점 개체 수가 증가하면 용량이 커질 수 있고, 처리 속도가 상대적으로 느리다. 5가지 키워드 1. 추상..
[DB] 데이터베이스 기초
·
Engineering/CS
데이터베이스란?데이터베이스란 여러 사람들이 공유하고, 사용될 목적으로 통합하여 관리되는 데이터의 집합데이터 베이스를 사용하기 이전에는 파일 시스템을 이용하여 데이터를 관리했다. 이렇게 저장된 파일들을 업무에 사용할려고 하니... 각 데이터가 중복에다가 형태가 다르다는 문제가 발생하게되었다. 이러한 파일 시스템의 단점을 극복하기 위해서 나타난 시스템이 데이터베이스(DB)이다. 데이터베이스의 특징1. 데이터의 독립성하위 단계의 데이터 구조가 변경되더라도 상위 단계에 영향을 미치지 않는 속성 > 3-스키마 구조를 통해 구현파일 시스템의 응용 프로그램과 데이터가 상호 밀접하게 연결되어있다.논리적 독립성: 응용 프로그램에 영향을 주지 않고, DB 논리적 구조를 변경할 수 있는 능력 / 많은 응용 프로그램이 제각각..