create table grades ( id serial primary key, g int, name text ); insert into grades (g, name ) select random()*100, substring(md5(random()::text ),0,floor(random()*31)::int) from generate_series(0, 12141215); CREATE INDEX g_idx ON grades (g); id : row_id g : grade name : name 실습1 explain select * from grades; Seq Scan : 쿼리 계획 (Sequential Scan == Full Scan) 힙(heap) 영역으로 바로 가서 가져올 것이다. 순차적으로! cost..
database-engineering
저장소 개념 Table Row_id Page IO Heap data structure Index data structure b-tree Table EMPLOYEE_ID (Row_id) 특정 행을 고유하게 식별 Postgres : 튜플 ID Page Storage Model(row vs column store)에 따라 행은 논리적 페이지에 저장되고 읽혀진다. 데이터베이스는 단일 행을 읽는 것이 아니라, 단일 IO에서 한 페이지 이상을 읽으며, 해당 IO에서 많은 행을 얻는다. 우리 눈에는 두개의 행만 골라서 읽어온 것처럼 보이지만, 페이지 단위로 저장되어 있는 전체 영역을 스캔하며 필요한 행을 가지고 온 것. Page Size는 DB마다 다르다. (e.g. 8KB in postgres, 16KB in My..