태그 목록
전체보기 (106)Capstone(34)db(20)algorithm(18)CS(18)Backend(17)CodingTest(14)project(13)Vingterview(12)boj(10)sql(8)computer architecture(8)greedy(8)Lecture note(8)deploy(7)django(7)Posting(6)Java(6)JVM(5)authentication(5)authorization(4)OS(4)data structure(4)Spring(4)kakao(4)Implementation(4)API(3)CI/CD(3)stack(3)refactoring(3)Query Processing(3)heap(2)Query Optimization(2)BFS(2)protocol(2)runtime data area(2)spring security(2)drf(2)Index(2)logging(2)linked list(2)network(2)websocket(2)Restful(2)Deque(2)Execution Engine(2)transaction(2)View(1)brute force(1)PK(1)Multiprocessor(1)pipelining(1)Native Method Libraries(1)Hashing(1)OAuth2.0(1)ec2(1)Nginx(1)JWT(1)@api_view(1)Computer System(1)docker(1)Services(1)question(1)Processor(1)coding test(1)tree(1)union(1)PC Register(1)circular queue(1)GC(1)exception handling(1)classLoader(1)Physical Storage(1)memory(1)scheduling(1)Multiple key index(1)Class Loader(1)Recovery system(1)array(1)ISA(1)user(1)Native Method Interface(1)Method Area(1)Data Storage Structure(1)aws(1)Web Server(1)JIT Compiler(1)Virtual Avatar(1)Generics(1)unique(1)DFS(1)Binary Search Tree(1)CRUD(1)Sub Query(1)algotithm(1)dynamic programming(1)exception(1)Concurency Control(1)ViewSet(1)unittest(1)Comment(1)Native Method Stack(1)tag(1)mixin(1)Divide and conquer(1)cors(1)stomp(1)ModelSerializer(1)unit test(1)BaseSerializer(1)kako(1)dynamicprogramming(1)interpreter(1)Graph(1)restful api(1)rds(1)Thread(1)queue(1)garbage collector(1)process(1)ALU(1)REST(1)무중단 배포(1)priority queue(1)apps.py(1)signal(1)FK(1)Performance(1)datatype(1)garbage collection(1)live-streaming(1)csrf(1)MIPS(1)Spanning Tree(1)binary tree(1)JOIN(1)serializer(1)B+TREE(1)
post-thumbnail

[DB] Hashing

정적 해싱 정적 해싱은 해시함수가 레코드의 search key를 고정된 버킷 집합에 매핑하는 방법이다. 버킷이란 하나 이상의 엔트리를 저장하는 저장공간으로 일반적으로는 하나의 디스크 블록과 크기가 같도록 설정한다. 정적 해싱을 사용하여 레코드를 조회하기 위해서 DBMS는 찾고자 하는 search key값을 해시함수에 넣어 레코드(혹은 인덱스 엔트리)가 포함된 버킷의 주소를 얻는다. 이때 버킷에 인덱스 엔트리가 들어가면 해시 인덱스, 레코드가 들어가면 해시 파일구조로 구분한다. 해시함수는 조회뿐만 아니라 레코드를 삽입, 삭제할 때에도 레코드의 위치를 찾기 위해 사용된다. 그런데 해시함수를 사용하면 서로 다른 두 search key값이 하나의 버킷으로 매핑되는 collision이 발생할 수 있기 때문에 레코드의 위치를 찾을 때에는 해시 함수를 통해 버킷의 주소를 얻은 뒤, 버킷 내부에서 순차적으로 탐색하여 원하는 레코드를 찾는 작업이 필요하다.

2023년 4월 15일
·
0개의 댓글
·