Bài viết được sự cho phép của tác giả Kiên Nguyễn
Từ trước tới nay, làm với với Database là nhắc tới row (dòng), cũng có làm việc với column nhưng lưu trữ theo hướng column (Column Oriented Storage) thì chưa nghe bao giờ.
Đây, bắt đầu ngay xem tại sao ta lại cần biết về cái kiểu này.
Một ngày đẹp trời, sếp đưa cho bạn một table với vài tỷ dòng dữ liệu. Nhắc lại là tỷ (trillion) nha. Sếp bảo lấy ra mấy dòng trong tháng 12 năm 2005. Lúc này, bất cứ thao tác nhỏ nào với DB cũng trở thành vấn đề lớn.
Rồi đây, cùng xem cái thằng quỷ Column Oriented Storage có gì khác?
1. Column Oriented Storage là gì?
Ý tưởng vô cùng đơn giản
The idea behind column oriented storage is simple: don’t store all the values from one row together, but store all the values from each column together instead
Ý tưởng phía sau column oriented storage vô cùng đơn giản: đừng lưu trữ tất cả dữ liệu trên một dòng, thay vào đó lưu trữ với nhau trên một cột
Nếu data trong mỗi column được lưu trữ trong một file?. Lúc này, khi cần truy xuất, chỉ cần đọc và parse nội dụng file sẽ có data. Tiết kiệm được rất nhiều thời gian và cải thiện rõ rệt về performance.
Ở table phía trên, thay vì lưu trữ theo hướng row (hàng) ở phía trên, ta sử dụng column. Cột data_key, product_sk, tất cả chuyển qua lưu trữ theo dòng. Đó là bước đầu tiên trong Column Oriented Storage.
Cũng có thể nhớ dựa vào tên, Oriented: hướng về, thiên về. Nên Column Oriented Storage là lưu trữ theo hướng column (cột).
2. Nhanh hơn chỗ nào?
4. Tham khảo
Đã tìm hiểu về Column Oriented thì ngại ngùng gì mà không xúc luôn Database Clustering ha.
Thanks for read. Have a great day!. Happy coding!
Bài viết gốc được đăng tải tại kieblog.vn
Có thể bạn quan tâm:
- Dùng gì để lưu trữ data thay thế local storage?
- Lập trình theo kiểu Aspect Oriented Programming (AOP) sử dụng Spring Framework
- Web storage là gì?
Xem thêm Việc làm Developer hấp dẫn trên TopDev