Dijkstra June 2018 | Page 22

POSTGRESQL BUFFER hoạt động như thế nào? GIỚI THIỆU Hầu hết các hệ thống cơ sở dữ liệu SQL hiện nay đều lưu trữ dữ liệu ở trên ổ đĩa. Tuy nhiên, như chúng ta đã biết thì truy xuất từ điã sẽ chậm hơn khoảng 80 lần so với RAM. Dù bạn có thay thế đĩa cứng bằng ổ SSD thì vẫn sẽ chậm hơn 4 lần so với RAM. Các hệ cơ sở dữ liệu SQL xử lý việc này bằng kỹ thuật buffer. Buffer hoạt động dựa trên nguyên tắc: đưa 1 phần thông tin thường dùng chứa thẳng trên RAM để có tốc độ truy xuất nhanh. Những lần sử dụng sau thì sẽ không phải truy xuất ổ đĩa để lấy dữ liệu nữa. 22 DIJSKTRA Trong PostgreSQL, hệ thống đảm nhận việc này có tên là Buffer Manager. CẤU TRÚC CỦA BỘ QUẢN LÝ ĐỆM Bộ quản lý đệm gồm có 3 thành phần: buffer table, buf- fer descriptors và buffer pool. Trong bài viết này chúng ta sẽ chỉ đề cập đến buffer pool. Buffer pool chính là bộ nhớ tạm mà chúng ta đã nói qua ở kỹ thuật buffer. Buffer pool được hiện thực dưới dạng 1 mảng được lưu trữ trên RAM. Mỗi ô của mảng này sẽ chứa một lượng “dữ liệu thô”, và index của ô này được gọi là buffer_id.