관계형 데이터베이스는 대부분 데이터를 저장할 때에 "행 지향" 또는 "열 지향"으로 저장합니다. OLTP 용 데이터베이스를 가장 많이 사용하게 됨으로 여러분이 사용 중인 데이터베이스는 대부분 "행 지향"으로 저장하고 있을 확률이 높습니다. 행 지향은 행 (row) 단위로 데이터를 쭉 이어서 저장하는 방식입니다. OLTP는 소량의 데이터를 다수의 사용자가 사용할 때 최적의 성능을 발휘하도록 설계가 되어 있기 때문에 행 단위로 저장하여 사용하는 것입니다. 반면에 열 지향은 데이터를 각각의 컬럼 별로 저장하는 방식입니다. 소수의 사람이 다량의 데이터를 처리할 경우에 적합니다. 주로 DW(데이터웨어하우스)에 사용되는 DBMS가 제공하는 방식입니다. 하나의 SQL에서 처리하는 행이 1억 건일 경우 행 지향 보다 ..
https://db-engines.com 에 방문해 보면 300여개가 넘는 데이터베이스를 만나 볼 수 있습니다. 관계형, 키-벨류, 와이트 컬럼 (키 패밀리), 도큐먼트, 그래프, 타임시리즈 등으로 분류하여 각각의 순위도 알 수가 있고요. 저는 가끔 방문해서 어떤 데이터베이스가 요즘 관심을 받는지를 보는 것도 좋아합니다. 그렇게 해서 올해 초에 "yugabytedb"를 알게 되어서 몇몇 글을 포스팅하기도 했었습니다. 관계형 데이터베이스는 세상에 나온 후로 오늘날까지 가장 광범위하게 사용되는 데이터베이스 모델입니다. 하지만 빅데이터가 출연한 이후로는 관계형 데이터베이스로 처리할 수 없는 곳이 생겨나면서 NoSQL이 출현했습니다. 데이터 일관성을 엄격하게 보장하는 관계형 데이터베이스와는 달리 어느 정도 일관..
"데이터베이스"가 중요한 이유를 먼저 알면 "SQL"를 왜 배워야 하는 이유를 더 분명히 알 수 있습니다. 페이스북, 아마존, 넷플릭스, 구글 등 모두가 알만한 기업들이 가치가 높고, 실제로도 시가 총액이 상상을 초월합니다. 제가 생각하는 일들 기업의 가치는 "알고리즘"과 보유한 막대한 "데이터"에 있다고 생각합니다. 이 중에 데이터는 대부분 다양한 데이터베이스에 저장되어 있습니다. 그리고 정제되고 가치가 있는 데이터는 관계형 데이터베이스에 대부분 존재하고, 관계형 데이터베이스에 있는 데이터를 활용할 수 있는 1차적인 언어는 SQL뿐입니다.
오라클을 공부하기 위해서 Oracle 11g Enterprise를 설치하는 것은 매우 번거로운 작업입니다. 이를 해결하는 방법은 도커 환경을 이용하는 것입니다. 아래 순서대로 따라 하시면 몇 분 만에 환경을 구축할 수 있습니다. 1. 도커 이미지를 다운로드 받습니다. docker pull loliconneko/oracle-ee-11g 2. 다운로드 받은 이미지를 이용해 컨테이너를 실행합니다. mkdir /home/user/data docker run -d -p 8080:8080 -p 1521:1521 -v /home/user/data:/u01/app/oracle -e DBCA_TOTAL_MEMORY=2048 loliconneko/oracle-ee-11g docker container ls -a 3. 접속..
저는 Oracle Query Tool로 Orange를 제일 좋아합니다. 단점은 윈도즈 버전만 있다는 것이죠. 물론 Toad, SQL Gate도 좋은 툴입니다. Orange / Toad가 상대적으로 가격이 비싸기 때문에 SQL Gate를 회사에서 많이 사용을 했습니다. 올해 이직을 했는데, 비용 때문인지 DBA를 제외하고는 대부분 SQL Developer (무료)를 사용하고 있었습니다. SQL Developer도 나름 좋지만, 윈도즈에서만 사용할 경우에는 살짝 아쉬운 부분이 많이 있습니다. 그런데 특정 부서에서는 유료로 "PL/SQL Develper 를 구매해서 사용하고 있었습니다. 처음 들어본 툴인데, 이름부터가 PL/SQL 코딩에 특화된 것처럼 보이죠. 가장 큰 매력이 가격인 것 같았습니다. 50 Us..
회사에서 특정 쿼리 수행시간이 오래 걸려서 튜닝 요청을 받았습니다. 처음 보는 쿼리라서 먼저 실행계획을 봤는데, 특이 사항이 없어서 쿼리에서 처리하는 데이터를 본 후에 문제점을 발견할 수 있었습니다. 오라클 11g 였는데, 쿼리의 SELECT LIST 부분에 WM_CONCAT 함수가 수행 시간을 오래 걸리게 만들었습니다. 저는 평소에 "행 -> 열"로 만들어야 하는 경우에는 주로 "LISTAGG" 함수를 사용합니다. WM_CONCAT은 사용하기는 편하나, 오라클 매뉴얼에도 없는 비공식 함수기 때문에 가급적 사용을 안합니다. WM_CONCAT이 문제가 되었던 거는 처리해야 하는 행(값)이 너무 많아서 였습니다. 조회 조건을 변경 하면은 대부분 10개 내외로 WM_CONCAT() 함수가 사용이 되어졌는데, ..
최근에 YugabyteDB를 스터디하고 있는데, 입력 속도가 어떤지 궁금해서 MariaDB와 PostgreSQL과 비교해 보았습니다. > - OS: Ubuntu 20.04.4 LTS - 도커 컨테이너로 수행 create table tt_trade ( a varchar(10), b varchar(10), c varchar(10), d varchar(10) ) 30만건 데이터를 임의로 생성하여, JDBC를 통해서 입력 DBMS 버전 처리시간(초) YugabyteDB 2.11.2.0 26 MariaDB (ColumnStore) 10.5.12 7 MariaDB (InnoDB) 10.5.12 2 PostgreSQL 13.3 3 MariaDB에서 InnoDB 엔진으로 생성한 경우가 2초로 가장 빨랐습니다. Yuga..
- Total
- Today
- Yesterday
- weka
- 파나소닉 비데 DL-EH10KWS
- VARIDESK
- 르세라핌
- 매직 트랙패드2
- Life Chair
- 남설 팔찌
- 화분벌레
- 솔리드 쿨론
- 로니카 BCS
- 브리다 정수기
- 배당급
- 톡토기
- Sybase IQ
- 홈 오피스
- 코라나 19
- 빈센트 반 고흐
- 오미크론
- yugabyteDB
- 고체 향수
- 루미큐브 종류
- JMW 헤어드라이기기
- node.js
- 별이 빚나는 밤
- 별잉 빛나는 밤
- GKRS
- 카카오 에드
- Pixel Pals
- 증권정보포털
- 유가바이트디비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |