Database

    db - slow query

    정의 DBMS가 Client로부터 요청받은 query를 수행할 때 일정 시간 이상 수행되지 못한 query - slow query 발생 시 로그를 통해 원인을 파악할 수 있다. slow query 잡는 법 어느정도 느려지면, 쿼리 실행문을 로그에 남길건지 postgresql.conf에 설정값을 추가해줘야한다. 1. 발생 로그 남기기 2. 모든 쿼리 실행계획 로그 남기기 3. 쿼리 실행 통계 보기 로그 쌓는 법 슬로우쿼리는 my.cnf 파일 내에서 설정. my.cnf의 경로는 주로 /etc/my.cnf를 사용합니다. 편집기를 통해 다음의 내용을 입력한다. my.cnf로 수정할 경우 mysql 서비스 재시작이 필요함. 항목 my.cnf 추가 내용 해당 값(초) 이상의 로그 기록 long_query_time ..

    db - B Tree, B+ Tree, B- Tree

    B- Tree 전산학에서 B-트리는 데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료구조의 일종이다. - 자료를 정렬된 상태로 보관하고, 삽입 및 삭제를 대수 시간으로 할 수 있다. - 이진 트리는 항목이 삽입될 때 하향식으로 구성되는 데 반해, B-트리는 일반적으로 상향식으로 구성 B+ Tree (Quaternary Tree) 컴퓨터 과학용어로, 키에 의해서 각각 식별되는 레코드의 효율적인 삽입, 검색과 삭제를 통해 정렬된 데이터를 표현하기 위한 트리자료구조의 일종 - B트리와 대조적으로 B+트리는, 모든 레코드들이 트리의 가장 하위 레벨에 정렬되어있다. 오직 키들만이 내부 블록에 저장된다. - 동적이며, 각각의 인덱스 세그먼트(블록 또는 노드라고 불리는) 내에 최대와 최소범위의 키의 개수를 가지..

    db - 인덱스

    정의 데이터베이스 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조를 일컫는다. 장점 - 인덱스를 사용하면 테이블 전체를 읽지 않아도 되므로, 검색과 질의에 대한 처리가 빠르다. 사용법 일반 INDEX 생성 tableName이라는 테이블의 fieldName 필드에 indexName이라는 인덱스를 설정 CREATE INDEX indexName ON tableName(fieldName); UNIQUE INDEX 생성 UNIQUE INDEX는 중복값을 허용하지 않는 인덱스이다. CREATE UNIQUE INDEX indexName ON tableName (fieldName1, fieldName2, ...) ,(쉼표) 사용 시 여러 필드에 UNIQUE INDEX를 생성해 줄 수 있다. 조회 tabl..

    db - 📝 정규화

    정의 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스 목적 - 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지 - 각 릴레이션에 중복된 종속성을 여러개의 릴레이션에 분할 - 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 함 - 데이터 삽입 시 릴레이션을 재구성할 필요성 감소 - 효과적인 검색 알고리즘을 생성 가능 제 1 정규화의 목적(에드거 F. 커드 정의) 1. 고려되지 않은 삽입, 갱신, 삭제 의존에서부터 관계의 집합을 배제한다. 2. 새로운 자료형이 나타날 때, 관계들의 집합의 재구성의 필요성을 낮추고, 그로 인하여 응용 프로그램의 생명주기를 연장한다. 3. 사용자에게 관계 모델을 더욱 의미있게 한다. 4. 관계들의 집합을 질의의 통계로부터 중립적이게 한..

    db - 🇩 데이터 모델링

    정의 데이터 모델링이란 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업을 말하며, 일반적으로 이를 물리적인 데이터베이스 모델로 환원하여 고객의 요구에 따라 특정 정보 시스템의 데이터베이스에 반영하는 작업을 포함한다. 후자의 의미로 흔히 데이터베이스 모델링으로 불리기도 한다 데이터 모델의 특징 - 가시화 - 명세화 - 문서화 - 시스템 구축하는 틀 제공 - 기타 등등 데이터 모델링 시 주의점 - 중복이 발생하지 않도록 한다. - 데이터의 정의를 데이터 사용 프로세스와 분리함으로써 작은 실수로 인해 앱 / 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 방지한다. - 데이터간 상호연관 관계에 대한 명확한 정의로 모순되는 데이터 업데이트를 방지한다.

    django - 자주 쓰는 것들

    DATABASES DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'site3_devel', 'USER': 'sbsst', 'PASSWORD': 'sbs123414', 'HOST': '127.0.0.1', 'PORT': '3306', 'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", # 추가, 만약에 이 부분 때문에 오류가 난다면..

    mysql, django - mysql에서 생성한 db를 django models.py로

    mysql에서 생성한 db를 django models.py로 자동 생성 하는 법 명령어 python manage.py inspectdb > 해당디렉토리 models.py 명령어 입력 후 python manage.py makemigrations python manage.py migrate