Một số khái niệm cơ bản trong Database

Partition

Là một phần của bảng CSDL. Bạn có thể hình dung mỗi table của ta nhưng 1 cái kho chứa hàng, thì partition chính là các ngăn nhỏ hơn bên trong cái kho đó. Điều đó cũng có nghĩa khi bạn tìm kiếm dữ liệu, database chỉ cần search trong phạm vi 1 hoặc vài partition nào đó, giúp giảm thời gian truy vấn dữ liệu.

Résultat de recherche d'images pour "partition trong database là gì"

Ưu điểm:

  • Storage: Có thể lưu nhiều dữ liệu hơn trong một bảng hơn là lưu trữ trên single disk hay file system partition.
  • Deletion: drop cả một partiton nào đó đi sẽ rất nhanh, nhất là với những bảng có nhiều dữ liệu thì việc delete dữ liệu trở lên đơn giản hơn rất nhiều.
  • Query: truy vấn dữ liệu sẽ nhanh hơn nếu trong câu query của bạn có chỉ định rõ partition.

Schema

Résultat de recherche d'images pour "schema là gì"

Là một namespace dùng để gom nhóm các table có chung một đặc điểm nào đó đễ dễ dàng quản lý. Nếu bạn không sử dụng schema trong CSDL thì nó sẽ lấy schema mặc định là dbo

Ví dụ trong lược đồ CSDL của bạn có hai loại table chính như sau:

  • Các table về tin tức -> mình sẽ tạo schema tên là news gồm những table liên quan đến tin tức
  • Các table hệ thống -> mình sẽ tạo schema tên là sys gồm những table liên quan đến hệ thống

Một số hệ cở sở dữ liệu như MongoDB có dạng cấu trúc CSDL là schema-less tức là không cần dịnh nghĩa một cấu trúc khi lưu data.

Sharding

Résultat de recherche d'images pour "sharding"

Là kỹ thuật tách CSDL theo chiều ngang tạo điều kiện thuận lợi cho việc mở rộng và tăng tốc thời gian phản hồi của truy vấn.

Sharing lưu giữ các bản ghi dữ liệu qua nhiều thiết bị để đáp ứng yêu cầu về sự gia tăng dữ liệu. Khi kích cỡ của dữ liệu tăng lên, một thiết bị đơn (1 database hay 1 bảng) không thể đủ để lưu giữ dữ liệu. Sharding giải quyết vấn đề này với việc mở rộng phạm vi theo bề ngang (horizontal scaling). Với Sharding, bạn bổ sung thêm nhiều thiết bị để hỗ trợ cho việc gia tăng dữ liệu và các yêu cầu của các hoạt động đọc và ghi.

. Ví dụ một collection (tương đương với một table trong RDBMS) có lưu các document như sau:

{ name : “Joe”, age : 30, interests : ‘football’ }

{ name : “Kate”, age : 25 }

Nhìn vào tập data, bạn có thể biết được cấu trúc (schema) của collection này. Nhưng do không có một cấu trúc ràng buộc định nghĩa sẵn từ trước nên document trong collection có thể rất tùy ý và nếu chẳng may application lưu thêm một document không có liên quan về thông tin như:

{ name : “Joe”, age : 30, interests : ‘football’ }

{ name : “Kate”, age : 25 }

{ phone : “iphone”, ios : 6 }

thì mongodb cũng chấp nhận. Tuy vậy, nhìn ở khía cạnh bớt khắt khe hơn thì không có ràng buộc lại đem đến cho mongodb khả năng linh động uyển chuyển trong cấu trúc của nó.

Ưu điểm

Sharding cũng làm tăng độ tin cậy của ứng dụng bằng cách giảm thiểu thời gian ngừng hoạt động.

Nhược điểm:

Làm cho hệ CSDL bị phân mảnh và có khả năng lỗi khi bảng dữ liệu shard lỗi. Đồng thời bảng CSDL chính cũng khó phục hồi nếu môt trong các bảng dữ liẹu con bị lỗi.

Data Indexing

Iindex chỉ hữu ích với những truy vấn có điều kiện tìm kiếm liên quan đến cột ta đánh index. Thế thì xét xem cột nào hay dùng nhất thì đánh index vào. Ví dụ như name trong users, là 2 trường thông dụng, do vậy thường được đánh index.

Ưu điểm:

Tăng tốc độc truy vấn, và giảm thiểu số lượng bản ghi/trường cần phải đọc khi thực hiện truy vấn

Leave a Reply

Your email address will not be published. Required fields are marked *