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..
udemy
저장소 개념 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..
REDIS - 숫자 다루기 (DECR, DECRBY, INCRBY, INCR) 대략적인 숫자 저장 방법 GET, SET 중요한 점은 문자열 "20"으로 반환된다는 것. INCR / DECR SET age 20 -> key가 "age"인 value "20"을 저장한다. INCR age -> "age"라는 key를 가진 value값에 1을 증가시킨다. DECR age -> 반대로 value 값에 1을 빼준다. INCRBY / DECRBY INCRBYFLOAT https://redis.io/docs/about/ Introduction to Redis Learn about the Redis open source project redis.io
REDIS - SETNX / SETEX / MEST / MSETNX SETEX SET + EX 옵션을 사용하는 것과 동일 EX는 이전에 이야기 했듯이, 종료 시간을 설정하는 것 왼쪽과 오른쪽의 명령어는 동일하다고 보면 된다. 공식 문서를 보면 SET으로 SETEX 작업을 모두 처리할 수 있고, SETEX는 앞으로 지원하지 않겠다고 설명하고 있다. https://redis.io/commands/setex/ SETEX Sets the string value and expiration time of a key. Creates the key if it doesn't exist. redis.io SETEX color 2 red -> key는 'color' value는 'red' 2초간 저장하겠다. 아래 명령어를 ..