+113
Performance optimization với PostgreSQL
Các câu truy vấn SQL chạy rất nhanh với Database local, nhưng lên môi trường production thì chậm hơn rùa bò. Vì sao vậy?
Có một vài yếu tố liên quan đến môi trường như CPU chậm, RAM ít, bandwidth giới hạn, vô vàn các lý do từ bên thứ 3 mà anh em dev có thể nghĩ đến. Tuy nhiên có một thứ giả vờ quên là design lởm, query tồi . Và chính mình đã gặp trường hợp như vậy. Chạy local 0,1(s) nhưng lên production là 5(s)...
Series này mình tổng hợp và giới thiệu về cách phân tích, optimize với PostgreSQL để tăng query performance.
- 001: Có những cách nào để tối ưu SQL Query?
- 002: Hiểu về Index để tăng performance với PosgreSQL P1
- 003: Hiểu về Index để tăng performance với PosgreSQL P2
- 004: Hiểu về Index để tăng performance với PosgreSQL P3
- 005: Hiểu về Join để tăng performance với PostgreSQL
- 006: Partitioning với PostgreSQL P1
- 007: Partitioning với PostgreSQL P2
- 008: Materialized view với PostgreSQL
- 009: Optimistic lock và Pessimistic lock
- 010: Exclusive lock và Shared lock
- 011: PostgreSQL multi-version concurrency control
- 012: PostgreSQL Vacuum là gì?
- 013: Thực hành Vacuum với PostgreSQL
- 014: PostgreSQL transaction isolation
- 015: PostgreSQL best practice
Reference
- https://github.com/postgres/postgres
- https://www.postgresql.org/docs/13/mvcc.html
- https://stackify.com/postgresql-performance-tutorial/
- https://wiki.postgresql.org/wiki/Performance_Optimization
- https://en.wikipedia.org/wiki/Multiversion_concurrency_control
- https://www.geeksforgeeks.org/difference-between-shared-lock-and-exclusive-lock/
© Dat Bui
NỘI DUNG
5.5K 12 0
48
9.7K 9 0
43
Series này rất hữu ích, mong bạn hãy tiếp tục !!!
Series có chiều sâu và rất hay, cảm ơn tác giả nhiều, mong bác tiếp tục series bài
@HoanKi @kalista285 tks. Upvote cho mình có thêm động lực nhé
Câu từ không thật sự "chuyên" nhưng nó gần gũi và rất dễ hiểu. Hi vọng bạn sẽ ra thêm nhiều bài về các phần mới của PostgreSQL.
@phutq yep tks b. Viết theo hướng học thuật thì hơi khô khan mà khó trôi. Thực ra là mình viết free-style và muốn lấy các ví dụ thực tế sẽ dễ hiểu hơn.
Cảm ơn sernior 😉 .
series này quá hay và chuyên nghiệp, giúp mình rõ hơn vấn đề về transaction về DB trong mariaDB, hy vọng bạn có thêm một số series đánh giá để tối ưu hệ thống DB Mysql và MariaDB. cảm ơn bạn rất nhiều vì những ví duh rất "nông dân" theo cách nghĩ cũng rất "nông dân" như mình.
@ndinh mình còn vài series nữa b có thể đọc thêm nhé. Nếu cảm thấy có ích thì có thể "Buy me a coffee" nhé . Thank b
Hello anh, series quá hay. e cũng đang sử dụng pgsql cho hệ thống. Có 1 vấn đề hiện tại là cùng 1 query, cùng điều kiện nhưng query có lúc nhanh(~2s, 3s) nhưng lại có lúc rất chậm (7 đến 10s, 20s). Đặc biệt là những lần đầu tiên sẽ chậm và càng về sau càng nhanh hơn. Liệu nó có liên quan đến cơ chế caching nào không ạ?
@datbv sau nhiều ngày mò mẫm thì e đã thấy thì nó liên quan đến buffer_cache tuy nhiên để custom nó hay flush cache đi để test query explain thì e chưa nắm được. Nhưng được cái là dựa vào series của a e đã xem lại index và tinh chỉnh cho phù hợp với query thực tế, cost giảm rõ rệt.
Series hay lắm ạ. Cảm ơn bác