Tin mới nhất

Menu

Browsing "Older Posts"

Chia Sẻ Khóa Học PostgreSQL High Performance Tuning [Khóa 7157 A]

08 tháng 8 2023 / No Comments

Mẹo Tuning PostgreSQL như một Pro | Tìm hiểu cách ngăn chặn các vấn đề về hiệu suất của Postgres.

Bạn sẽ học được gì:

  • ✓ Lý thuyết về kiến ​​trúc PostgreSQL và cách nó hoạt động.
  • ✓ Hiểu cách set shared_buffers để có hiệu suất tốt hơn.
  • ✓ Tìm hiểu cách cấu hình Vacuum để giữ cho cơ sở dữ liệu sạch sẽ và nhanh.
  • ✓ Cách sử dụng Index hiệu quả.
  • ✓ Thực hành các chiến lược tối ưu hóa Index.
  • ✓ Làm thế nào để hiểu ý nghĩa của Statistics.
  • ✓ Nắm vững cách phát hiện các vấn đề truy vấn.
  • ✓ Thực hành các kỹ thuật tối ưu hóa Query.
  • ✓ Các khái niệm cơ bản cho Scaling và Replication trong PostgreSQL.

PostgreSQL là một trong những hệ thống quản lý cơ sở dữ liệu mạnh mẽ và dễ sử dụng nhất. Nó nhận được sự hỗ trợ mạnh mẽ từ cộng đồng và đang được tích cực phát triển với bản phát hành mới hàng năm.

PostgreSQL hỗ trợ các tính năng nâng cao nhất có trong các tiêu chuẩn SQL. Nó cũng cung cấp các khả năng của NoSQL và các kiểu dữ liệu và tiện ích mở rộng rất phong phú. Tất cả những điều này làm cho PostgreSQL trở thành một giải pháp rất hấp dẫn trong các hệ thống phần mềm.

Tuy nhiên, để đạt được hiệu suất tốt nhất từ ​​nó không phải là một chủ đề dễ giải quyết. Bạn chỉ cần kết hợp đúng các quy tắc rules of thumb để bắt đầu, testing phù hợp, monitoring chặt chẽ và bảo trì để giữ cho hệ thống của bạn hoạt động tốt và gợi ý cho các công cụ add-on để thêm các tính năng mà core database không cố gắng xử lý của riêng nó.

Khóa học này được cấu trúc để cung cấp cho bạn cả khía cạnh lý thuyết và thực tiễn để triển khai Postgres hiệu suất cao. Nó sẽ giúp bạn xây dựng các giải pháp cơ sở dữ liệu động cho các ứng dụng doanh nghiệp bằng cách sử dụng một trong những bản phát hành mới nhất của PostgreSQL.

Bạn sẽ kiểm tra chi tiết tất cả các khía cạnh nâng cao của PostgreSQL, bao gồm sao logical replication, database clusters, performance tuning, và monitoring. Bạn cũng sẽ làm việc với PostgreSQL optimizer, định cấu hình Postgres để có tốc độ cao bằng cách xem xét các transaction, locking, index và tối ưu hóa các truy vấn.

Bạn sẽ có một số tiếp xúc với cơ sở dữ liệu. Sự quen thuộc cơ bản với database objects như table và index được mong đợi. Bạn sẽ thấy khóa học này thực sự hữu ích nếu bạn chưa có hoặc ít tiếp xúc với PostgreSQL. Nếu bạn đã làm việc với PostgreSQL được vài năm, bạn vẫn nên tìm thấy một số lệnh hữu ích mà bạn chưa biết hoặc một số phương pháp tối ưu hóa mà bạn chưa thử. Bạn cũng sẽ hiểu rõ hơn về cách cơ sở dữ liệu hoạt động.

Chương trình giảng dạy khóa học trực tuyến PostgreSQL Performance Tuning:

1. Tìm hiểu PostgreSQL Server Architecture:

  • ✓ Trong phần này, chúng ta sẽ khám phá PostgreSQL Architecture.
  • ✓ Shared Buffers hoạt động phối hợp với cache của hệ điều hành, thay vì thay thế nó. Các cache này cải thiện hiệu suất bằng cách giảm I/O vật lý cần thiết.
  • ✓ Tại sao chúng ta cần set Checkpoints một cách cẩn thận để hạn chế thời gian khắc phục sự cố, đồng thời không ảnh hưởng đến phần còn lại của hiệu suất hệ thống?
  • ✓ Phần này sẽ giới thiệu cho tất cả các bạn về lý do tại sao chúng ta cần WAL Writer và cả Background Writer.
  • ✓ Xem các giai đoạn mà Query Processor phải vượt qua để có được kết quả.
  • ✓ Utility Subsystem cung cấp các cách để duy trì cơ sở dữ liệu, chẳng hạn như yêu cầu lưu trữ, cập nhật số liệu thống kê và logging.

2. Định cấu hình Vacuum for Performance:

  • ✓ Chúng tôi sẽ hiểu tại sao bất cứ khi nào chúng tôi thực hiện UPDATE hoặc DELETE, chúng tôi sẽ để lại một dead row phía sau (và có khả năng là một dead index entry) cần được dọn sạch sau này bằng một số form of vacuum.
  • ✓ Chúng ta sẽ biết rằng khi các table phát triển rất lớn do có quá nhiều bộ dữ liệu chết thì hiệu suất sẽ có xu hướng giảm. Do đó không bao giờ nên tránh quá trình VACUUM.
  • ✓ Phần này giải thích lý do tại sao nên để một steady low-intensity vacuum hoạt động, sử dụng tính năng autovacuum của cơ sở dữ liệu, thay vì tắt tính năng đó và phải thực hiện việc dọn dẹp đó trong các block lớn hơn.

3. Cách sử dụng Index hiệu quả:

  • ✓ Hiểu rằng việc thêm một index sẽ làm tăng chi phí hoạt động mỗi khi bạn thêm hoặc thay đổi hàng trong bảng. Mỗi index cần đáp ứng đủ các truy vấn để chứng minh chi phí duy trì là bao nhiêu.
  • ✓ Trong phần này, chúng tôi sẽ giải thích tại sao execution plan của một truy vấn lại phụ thuộc vào dữ liệu bên trong bảng. Nếu dữ liệu có carnality thấp, PostgreSQL rất có thể sẽ bỏ qua index.
  • ✓ Trong phần này, chúng ta sẽ tìm hiểu tại sao một index chỉ hữu ích nếu nó có selective; nó có thể được sử dụng để chỉ trả về một phần nhỏ các hàng trong bảng.
  • ✓ Trong phần này, chúng ta sẽ khám phá cách sử dụng bitmap scans một cách hiệu quả.

4. Mẹo tối ưu hóa Index:

  • ✓ Ngoài việc chỉ sử dụng các Index, bạn cũng có thể triển khai các chiến lược tùy chỉnh cho ứng dụng cụ thể của mình để tăng tốc mọi thứ.
  • ✓ Làm cách nào để có thể trả lời các truy vấn bằng cách chỉ sử dụng dữ liệu trong một  index bằng cách sử dụng covering indexes.
  • ✓ Phần này đề cập đến lý do tại sao việc xác định các index trên khóa ngoại lại là một cách thực hành tốt.
  • ✓ Trong phần này, chúng ta sẽ khám phá các partial index.
  • ✓ Các index có thể yêu cầu xây dựng lại định kỳ để đưa chúng trở lại hiệu suất tối ưu và việc phân cụm dữ liệu cơ bản theo thứ tự chỉ mục cũng có thể giúp cải thiện tốc độ truy vấn của chúng.
  • ✓ Chúng tôi sẽ giải thích thời điểm hữu ích để sửa đổi fill factor parameter của một table.
  • ✓ Trong phần này, chúng ta sẽ xem trường hợp nào sử dụng combined index vs multiple independent indexes.

5. Sử dụng Statistics:

  • ✓ Trong phần này, bạn sẽ khám phá statistics có thể giúp bạn tìm và sắp xếp các truy vấn chịu trách nhiệm cho phần lớn load trên hệ thống.
  • ✓ PostgreSQL cung cấp một tập hợp lớn các statistic. Trong phần này, chúng tôi sẽ làm cho việc tận dụng những hiểu biết sâu sắc của họ trở nên dễ dàng hơn.
  • ✓ Chúng ta sẽ xem cách nhanh nhất để phát hiện các index bị thiếu nhưng chúng ta cũng sẽ khám phá thời điểm cần loại bỏ các cindex.

6. Phát hiện các vấn đề về truy vấn:

  • ✓ Chúng tôi sẽ giải thích cách đọc các query plan và hiểu cách hoạt động của từng loại node bên dưới.
  • ✓ Chúng ta sẽ xem cách các truy vấn được thực thi như một chuỗi các node mà mỗi node thực hiện một nhiệm vụ nhỏ, chẳng hạn như fetching data aggregation hoặc sorting.
  • ✓ Chúng ta sẽ khám phá các phần của truy vấn thực sự có thời gian thực hiện lâu nhất và xem liệu chúng có matching cost phù hợp hay không.
  • ✓ Sự thay đổi giữa các row ước tính và thực tế có thể gây ra các vấn đề planning lớn. Chúng tôi sẽ khám phá những gì chúng tôi có thể làm trong những trường hợp như vậy.

7. Mẹo tối ưu hóa truy vấn:

  • ✓ Chúng ta sẽ thấy tại sao điều quan trọng trước tiên là đặt câu hỏi về tính đúng đắn về mặt ngữ nghĩa của một câu lệnh trước khi giải quyết vấn đề về hiệu suất.
  • ✓ Chúng ta sẽ hiểu tại sao nên tránh SELECT *, ORDER BY và DISTINCT trừ khi chúng ta thực sự cần chúng và không còn cách nào khác.
  • ✓ Chúng ta sẽ khám phá các tính năng của PostgreSQL như CASE syntax và các truy vấn song song để giảm thời gian thực hiện các truy vấn.

8. Cách set shared_buffers để có hiệu suất tốt hơn:

  • ✓ Chúng ta sẽ thấy rằng phân bổ PostgreSQL cho shared_buffers mặc định là cực kỳ thấp và chúng ta cần tăng nó để cho phép kích thước bộ nhớ dùng chung thích hợp cho cơ sở dữ liệu.
  • ✓ Chúng tôi sẽ đề cập đến cách shared_buffers hoạt động cùng với cache của hệ điều hành, thay vì thay thế nó và chúng tôi chỉ nên định cỡ nó ở mức một tỷ lệ phần trăm vừa phải trên tổng số RAM.
  • ✓ Chúng tôi sẽ hiểu rằng nếu chúng tôi muốn làm tốt hơn việc phân bổ tỷ lệ phần trăm cho shared_buffers so với cache của hệ điều hành, chúng tôi cần phân tích buffers cache content.

9. Scaling và Replication:

  • ✓ Chúng ta sẽ xem cách replication cũng có thể được sử dụng để cải thiện hiệu suất của hệ thống phần mềm bằng cách cho phép phân phối tải trên một số database server.
  • ✓ Trong một số trường hợp, chức năng replication do PostgreSQL cung cấp là không đủ. Có các giải pháp của bên thứ ba hoạt động xung quanh PostgreSQL, cung cấp các tính năng bổ sung, chẳng hạn như PGpool-II có thể hoạt động như một bộ cân bằng tải và Postgres-XL triển khai giải pháp cơ sở dữ liệu phân tán nhiều máy chủ có thể vận hành lượng dữ liệu rất lớn và xử lý tải trọng lớn.

Khóa học này dành cho ai:

  • ✓ Database Administrator.
  • ✓ Software Developer quan tâm đến nội bộ cơ sở dữ liệu nâng cao có tác động đến thiết kế và hiệu suất của ứng dụng.
  • ✓ Mọi người quan tâm đến việc xây dựng các ứng dụng PostgreSQL tốt hơn.


NHẬN GET EBOOK TRÊN AMAZON THEO YÊU CẦU




Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Tuyên bố miễn trừ bản quyền:
Trang web này không lưu trữ bất kỳ tệp nào trên máy chủ của nó. Chúng tôi chỉ lập chỉ mục và liên kết đến nội dung được cung cấp bởi các trang web khác. Vui lòng liên hệ với các nhà cung cấp nội dung để xóa nội dung bản quyền nếu có và gửi email cho chúng tôi, chúng tôi sẽ xóa các liên kết hoặc nội dung có liên quan ngay lập tức.