Cơ sở dữ liệu Realm

Realm là gì ?

Realm là một dạng cơ sở dữ liệu mới được xây dựng trên thiết bị di động, máy tính bảng. Realm sử dụng ít tài nguyên, dễ sử dụng, tốc độ nhanh và miễn phí kể cả những dự án mang tính thương mại. Nếu các bạn là một lập trình viên Android và iOS thì không mấy xa lạ với 2 dạng cơ sở dữ liệu là SQLite và CoreData.

Không giống như một số các database khác, bạn có thể sử dụng trực tiếp bên trong ứng ựng IOS của ban (hoặc là với những ứng dụng Android) để lưu và truy vấn dữ liệu cục bộ trên thiết bị, cho phép bạn xây dựng các ứng dụng nhanh hơn.

Bạn có thểm tham khảo ưu , nhược điểm cũng như cách sử dụng Realm một cách chi tiết khi click link này.

**Chú ý **

Trong hướng dẫn của bài trên do đã viết từ lâu nên cách cài đặt có hơi cũ.

Thay vì compile Realm trong file build.gradle

    compile 'io.realm:realm-android:0.84.1'

Bạn cần phải cài đặt như là một plugin Gradle để có thể sử dụng đầy đủ những cập nhật mới nhất từ công nghệ này.

Bước 1 : Thêm sự phụ thuộc đường dẫn lớp sau vào dự án tập tin mức build.gradle.

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath "io.realm:realm-gradle-plugin:2.2.0"
        }
    }

Bước 2: Áp dụng các realm-androidplugin để đầu mức độ ứng dụng build.gradletập tin.

    apply plugin: 'realm-android'

Hiệu năng

Realm có tốc độ vượt trội hơn SQLite trên rất nhiều mặt. Hiệu xuất của Realm đến từ việc nhiều năm phát triển trên một thiết kế lõi C++ được chỉnh sử để phù hợp với nhu cầu của nhiều thiết bị, nhờ áp dụng bit-packing, caching, vectorization và zero-copy architecture để nhận được lời ích tuyệt vời về việc sử dụng bộ nhớ và tốc độ.

1.jpg

1.jpg

2.jpg

Note

Ngoài những ưu nhược điểm đã liệt kê ở link bài viết phía trên thfi Realm còn có một số ưu điểm vượt trội khác như :

  • Realm hỗ trợ custom migrating - việc cập nhật CSDL, thêm/bớt các bảng, trường đều được hỗ trợ một cách thuận tiện, đơn giản nhất bằng cách kế thừa lớp RealmMigration.
  • Các lớp của Realm hỗ trợ nhiều trong việc tránh lỗi Null Pointer Exception. Khi truy vấn không có kết quả, đối tượng RealmResults được trả về sẽ là rỗng, và phương thức size() sẽ cho ra 0.

Chúc các bạn một ngày làm việc vui vẻ.