Thứ Năm, 17 tháng 11, 2022

Bài 15 - PostgreSQL best practice

Bài viết cuối cùng trong series sẽ nói về một số lỗi hay gặp với PostgreSQL và các best practice để xử lý.

Let’s begin.

Sửa bài viết

Bài 13 - Thực hành Vacuum với PostgreSQL

Phần trước đã tìm hiểu về một mớ lý thuyết của Vacuum, phần này sẽ xem qua về reindex và tập trung vào practice với vacuum để kiểm nghiệm thực tế thế nào. Let’s begin.

Sửa bài viết

Bài 12 - PostgreSQL Vacuum là gì?

PostgreSQL multi-version cuncurrency control giúp giải quyết concurrent read/write nhưng sẽ nảy sinh vấn đề khác:

  • Bloating: UPDATE/INSERT/DELETE nhiều dẫn tới dư thừa số lượng lớn các dead tuple (old record version). Chúng không còn giá trị nhưng vẫn nằm đấy, làm tăng disk space.
  • Wraparound transaction id: số lượng transaction id vượt quá 2^32 có thể dẫn tới sai lệch data.

Bài viết này sẽ tìm hiểu PostgreSQL xử lý chúng thế nào. Let’s begin.

Sửa bài viết

Bài 11 - PostgreSQL multi-version concurrency control

Việc concurrent read/write data tưởng chừng đơn giản nhưng với programming thì không ez tí nào. Chém thế chứ cũng không quá phức tạp khi sử dụng các cơ chế sync/lock, tuy nhiên nó làm giảm performance.

Vậy có cách nào không cần lock mà vẫn concurrent read/write không?

Let’s begin.

Sửa bài viết

Bài 10 - Exclusive lock và Shared lock

Phía client, hay nói cách khác là application, chúng ta tương tác với database thông qua các câu lệnh DML (INSERT/UPDATE/DELETE)… và bản chất tất cả đều được thực thi như một transaction nếu không explicit khai báo và không auto commit.

Sửa bài viết

Bài 09 - Optimistic lock và Pessimistic lock

Với series Multi-thread programming từ hardware đến software, ta biết rằng read/write data với multi-thread có thể dẫn đến data race, vấn đề nhỏ nhưng hậu quả lớn, khiến chương trình sai lệch trầm trọng.

Nghe hơi huy hiểm, nhưng cách giải quyết không có gì phức tạp, sử dụng các cơ chế mutual exclusion là giải quyết được vấn đề này.

Sửa bài viết

Bài 07 - Partitioning data với PostgreSQL P2

Tiếp tục bài trước, cùng đi tìm hiểu về 2 loại partition còn lại là:
  • Partition by list
  • Partition by hash
Sửa bài viết

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master