Xuất bản thg 5 27, 2021 7:42 SA 16907 220 11 15
  • 16907 220

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

© Dat Bui

Chia sẻ

NỘI DUNG


BÌNH LUẬN


thg 6 22, 2021 3:17 SA

Series này rất hữu ích, mong bạn hãy tiếp tục !!!

Avatar Bamboo @HoanKi
thg 6 28, 2021 4:00 SA

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

Avatar Dat Bui @datbv
thg 6 30, 2021 4:56 SA

@HoanKi @kalista285 tks. Upvote cho mình có thêm động lực nhé 😄

thg 7 9, 2021 1:36 SA

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.

Avatar Dat Bui @datbv
thg 7 9, 2021 3:11 SA

@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.

Avatar Nguyen Huy @cloudops
thg 11 7, 2021 6:52 SA

Cảm ơn sernior 😉 .

Avatar san @ndinh
thg 4 8, 2022 3:10 SA

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.

Avatar Dat Bui @datbv
thg 4 8, 2022 5:03 SA

@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 😄

thg 10 28, 2022 10:32 SA

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 ạ?

thg 11 4, 2022 3:41 SA

@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.

Avatar Ánh Bùi @yakatori
thg 10 23, 2023 4:44 SA

Series hay lắm ạ. Cảm ơn bác

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí