본문 바로가기

전체 글56

[Mysql] Metadata Locking Metadata Locking이란? 사용중인 오브젝트의 변경(DDL)을 방지해주는 기술로, 유효한 트랜잭션에서 사용중인 오브젝트를 변경할 수 없도록 하는 것을 말함 MariaDB에서는 사용중인 오브젝트 접근과 데이터 일관성 유지를 위해 Metadata Locking을 사용 이때, 오브젝트는 Table, procedure, function, trigger, event 등 autocommit이 "OFF"일 때 무슨 쿼리가 실행되든(SELECT포함) 트랜잭션이 시작되고, 해당 쓰레드에서 COMMIT이나 ROLLBACK 등으로 트랜잭션을 종료하기 전에는 해당 트랜잭션은 유효한 상태로 남아 있음 즉, autocommit이 "OFF"일 때는 SELECT만 해도 사용된 모든 오브젝트에 Metadata Lock이 설정.. 2021. 11. 4.
[PostgreSQL] psql 옵션 C:\>psql -? psql은 PostgreSQL 대화식 터미널입니다. 사용법: psql [OPTION]... [DBNAME [USERNAME]] 일반 옵션: -c, --command=COMMAND 하나의 명령(SQL 또는 내부 명령)만 실행하고 끝냄 -d, --dbname=DBNAME 연결할 데이터베이스 이름(기본 값: "devkuma") -f, --file=FILENAME 파일 안에 지정한 명령을 실행하고 끝냄 -l, --list 사용 가능한 데이터베이스 목록을 표시하고 끝냄 -v, --set=, --variable=NAME=VALUE psql 변수 NAME을 VALUE로 설정 (예, -v ON_ERROR_STOP=1) -V, --version 버전 정보를 보여주고 마침 -X, --no-psqlrc.. 2021. 11. 2.
[OCP] 1Z0-071 연습문제 풀이 (8_1) 보호되어 있는 글 입니다. 2021. 10. 28.
[Oracle] DB BLOCK SIZE 보호되어 있는 글 입니다. 2021. 10. 28.
B-tree 인덱스와 Hash 인덱스 Hash Index 해시 인덱스는 검색하고자 하는 값을 해시함수에 입력한 후 그 결과집합과 Bucket의 내용을 비교하여 해당 데이터 레코드의 위치를 찾음 Equal(=)연산에 좋은 성능을 보이고 해시 함수 특징상 입력 값에 비해 출력 값의 크기는 줄여 Bucket에 저장 즉, 실제 키 값과 관계없이 인덱스 크기가 작고 검색이 빠름 해시 함수를 거쳐 찾고자 하는 키값이 포함된 버켓을 알아내고 그 버켓 하나만 읽어 비교해보면 실제 레코드 저장위치를 알 수 있음 트리 내에서 여러 노드를 읽어야만 레코드를 주소를 알아낼 수 있는 b-tree보다 속도가 빠름 But, 범위를 탐색하는 경우 비효율적 ※ 해시 함수 - 임의의 길이를 갖는 메시지를 입력받아 고정된 길이의 해시값을 출력하는 함수 - 키를 사용하지 않으.. 2021. 10. 28.
인덱스의 원리 및 종류 인덱스란? 어떤 데이터가 디스크의 어느 위치에 있는지에 대한 정보를 가진 주소록과 같음 데이터 - ROWID(주소) 쌍으로 저장됨 일반적인 select 쿼리 실행 시 먼저 메모리의 database buffer cache를 체크 buffer cache에는 자주 사용되는 테이블들이 캐싱되어 있어 여기에 데이터가 있을 경우 바로 찾아 출력하고 없을 경우 하드디스크에 있는 데이터 파일에서 데이터를 찾음 인덱스를 사용하면 이런 과정을 거치지 않고 바로 주소를 통해 찾아감 인덱스 생성 원리? 해당 테이블을 모두 읽고 인덱스를 만드는 동안 데이터가 변경되면 문제가 되므로 해당 데이터들이 변경되지 못하도록 조치한 후 메모리(PGA의 Sort Area)에서 정렬 전체 테이블 스캔 → 정력 → Block 기록 (PGA내의.. 2021. 10. 6.
반응형