42
(Realm) 초고속 모바일 데이터베이스 Leonardo YongUk Kim [email protected]

Realm: 초고속 데이터베이스

Embed Size (px)

Citation preview

Page 1: Realm: 초고속 데이터베이스

렘 (Realm) 초고속 모바일 데이터베이스Leonardo YongUk Kim [email protected]

Page 2: Realm: 초고속 데이터베이스
Page 3: Realm: 초고속 데이터베이스

모두가 그분을 싫어합니다.

Page 4: Realm: 초고속 데이터베이스

String query = "SELECT " + Owner.NAME + ", " + Dog.NAME + ", " + City.NAME

+ " FROM " + Owner.TABLE_NAME + " INNER JOIN " + Dog.TABLE_NAME + " ON " +

Owner.DOG_ID + " = " + Dog.ID + " INNER JOIN " + City.TABLE_NAME + " ON " +

Owner.CITY_ID + " = " + City.ID + " WHERE " + Owner.NAME = "'" + escape(queryName) + "'";

Page 5: Realm: 초고속 데이터베이스

ActiveRecord

Ollie

Androm

BlurbCupboard

DBFlowDBQuery

DBTools

EasyliteOrm

GreenDAO

Orman

OrmLite

Persistence RushORM

Shillelagh

Sprinkles

SquiDB

SugarORM

Page 6: Realm: 초고속 데이터베이스

누가 쓰나요? (설마 우리만..)

Page 7: Realm: 초고속 데이터베이스
Page 8: Realm: 초고속 데이터베이스
Page 9: Realm: 초고속 데이터베이스

초고속 모바일 데이터베이스

Page 10: Realm: 초고속 데이터베이스
Page 11: Realm: 초고속 데이터베이스
Page 12: Realm: 초고속 데이터베이스
Page 13: Realm: 초고속 데이터베이스
Page 14: Realm: 초고속 데이터베이스

왜 빨라요?

Page 15: Realm: 초고속 데이터베이스

Zero-copy object store

Page 16: Realm: 초고속 데이터베이스
Page 17: Realm: 초고속 데이터베이스
Page 18: Realm: 초고속 데이터베이스
Page 19: Realm: 초고속 데이터베이스
Page 20: Realm: 초고속 데이터베이스
Page 21: Realm: 초고속 데이터베이스
Page 22: Realm: 초고속 데이터베이스

전통적인 자료구조

컬럼 기반의 자료구조

Page 23: Realm: 초고속 데이터베이스

컬럼 기반의 자료구조

• 패딩이 필요없다. • 한 컬럼 단위의 질의에 캐쉬가 넘치지 않는다.

Page 24: Realm: 초고속 데이터베이스

또 무엇을 하나요?

• boolean 형 자료는 8개씩 묶어서 저장합니다. • 데이터를 0, 1, 2, 4, 8, 16, 32, 64비트로 묶습니다.

여러 시도를 통해 SQLite 대비 최대 50% 정도의 공간 효율 확보.

데이터 질의에서 캐쉬 적중률 향상.

Page 25: Realm: 초고속 데이터베이스

어떻게 쓰나요?

Page 26: Realm: 초고속 데이터베이스
Page 27: Realm: 초고속 데이터베이스
Page 28: Realm: 초고속 데이터베이스
Page 29: Realm: 초고속 데이터베이스
Page 30: Realm: 초고속 데이터베이스

마이그레이션

Page 31: Realm: 초고속 데이터베이스
Page 32: Realm: 초고속 데이터베이스
Page 33: Realm: 초고속 데이터베이스
Page 34: Realm: 초고속 데이터베이스
Page 35: Realm: 초고속 데이터베이스

Version 0.83 (Nullable)

Page 36: Realm: 초고속 데이터베이스
Page 37: Realm: 초고속 데이터베이스
Page 38: Realm: 초고속 데이터베이스

Nullable

non-Nullable

Page 39: Realm: 초고속 데이터베이스

Version 0.84 (Async)

Page 40: Realm: 초고속 데이터베이스
Page 41: Realm: 초고속 데이터베이스