- vừa được xem lúc

Tổng Hợp 30 Câu Hỏi Phỏng Vấn PostgreSQL Thường Gặp

0 0 2

Người đăng: Truong Phung

Theo Viblo Asia

1. Câu hỏi PostgreSQL cấp độ cơ bản:

  1. PostgreSQL là gì?

    • PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ hướng đối tượng (ORDBMS) mã nguồn mở, nổi tiếng với sự bền bỉ, bộ tính năng phong phú và hỗ trợ các truy vấn phức tạp, giao dịch và tính toàn vẹn dữ liệu.
  2. Các tính năng chính của PostgreSQL là gì?

    • Các tính năng chính bao gồm hỗ trợ giao dịch ACID, các kiểu dữ liệu phong phú, MVCC (Multi-Version Concurrency Control), indexing, full-text search, hỗ trợ JSON và khả năng mở rộng với các hàm và kiểu dữ liệu tùy chỉnh.
  3. Table trong PostgreSQL là gì?

    • Table trong PostgreSQL là một tập hợp các hàng (rows) và cột (columns) được sử dụng để lưu trữ dữ liệu có cấu trúc. Mỗi hàng đại diện cho một bản ghi và mỗi cột đại diện cho một thuộc tính của bản ghi.
  4. Database trong PostgreSQL là gì?

    • Một database trong PostgreSQL là một container chứa các tables, views, functions và các đối tượng khác. Mỗi server PostgreSQL có thể chứa nhiều database.
  5. Schema trong PostgreSQL là gì?

    • Schema trong PostgreSQL là một namespace chứa các đối tượng cơ sở dữ liệu như tables, views và functions. Nó giúp tổ chức và quản lý các đối tượng cơ sở dữ liệu trong một database.
  6. psql là gì?

    • psql là giao diện dòng lệnh để tương tác với PostgreSQL. Nó cho phép người dùng chạy các truy vấn, thực hiện các lệnh SQL và quản lý database.
  7. Primary key trong PostgreSQL là gì?

    • Primary key là một khóa duy nhất để xác định các hàng trong một table. Nó đảm bảo rằng không có giá trị trùng lặp trong các cột mà nó áp dụng và giá trị không được NULL.
  8. Foreign key trong PostgreSQL là gì?

    • Foreign key là một cột hoặc nhóm các cột thiết lập liên kết giữa dữ liệu trong hai tables, đảm bảo tính toàn vẹn tham chiếu giữa chúng.
  9. Index trong PostgreSQL là gì?

    • Index là một cấu trúc dữ liệu cải thiện tốc độ của các hoạt động truy xuất dữ liệu trên một table. Các loại phổ biến bao gồm B-tree, hash và GIN indexes.
  10. View trong PostgreSQL là gì?

    • View là một bảng ảo dựa trên một truy vấn. Nó cho phép bạn hiển thị dữ liệu theo một định dạng cụ thể hoặc đơn giản hóa các truy vấn phức tạp mà không cần lưu trữ dữ liệu riêng biệt.
  11. Sequence trong PostgreSQL là gì?

    • Sequence là một đối tượng đặc biệt của cơ sở dữ liệu tạo ra một chuỗi số duy nhất, thường được sử dụng cho các trường auto-increment như primary keys.
  12. pgAdmin là gì?

    • pgAdmin là một giao diện người dùng đồ họa (GUI) để quản lý các databases PostgreSQL. Nó cho phép người dùng tương tác với databases thông qua một giao diện trực quan.
  13. VACUUM trong PostgreSQL là gì?

    • VACUUM được sử dụng để thu hồi bộ nhớ bị chiếm bởi các dead tuples. Nó cũng giúp ngăn ngừa các vấn đề wraparound của transaction ID và duy trì hiệu suất của database.
  14. Sự khác biệt giữa CHAR, VARCHARTEXT trong PostgreSQL là gì?

    • CHAR: Kiểu ký tự cố định độ dài.
    • VARCHAR: Kiểu ký tự có độ dài thay đổi với một giới hạn.
    • TEXT: Kiểu ký tự có độ dài thay đổi mà không có giới hạn.
  15. Transaction trong PostgreSQL là gì?

    • Transaction là một chuỗi các câu lệnh SQL được thực thi như một đơn vị công việc. Nó đảm bảo rằng hoặc tất cả các hoạt động được thực hiện hoặc không hoạt động nào được thực hiện, duy trì tính toàn vẹn của dữ liệu.

2. Câu hỏi PostgreSQL cấp độ trung bình:

  1. MVCC trong PostgreSQL là gì?

    • MVCC (Multi-Version Concurrency Control) là một phương pháp được PostgreSQL sử dụng để xử lý các giao dịch đồng thời, cho phép các truy vấn đọc có thể truy cập dữ liệu nhất quán mà không bị chặn bởi các truy vấn ghi.
  2. Mục đích của EXPLAIN trong PostgreSQL là gì?

    • EXPLAIN được sử dụng để phân tích kế hoạch thực thi của một truy vấn, cho thấy cách PostgreSQL sẽ thực hiện truy vấn đó. Điều này giúp hiểu và tối ưu hóa hiệu suất truy vấn.
  3. Các loại joins khác nhau trong PostgreSQL là gì?

    • INNER JOIN: Trả về các hàng có giá trị khớp trong cả hai tables.
    • LEFT JOIN: Trả về tất cả các hàng từ table bên trái và các hàng khớp từ table bên phải.
    • RIGHT JOIN: Trả về tất cả các hàng từ table bên phải và các hàng khớp từ table bên trái.
    • FULL JOIN: Trả về các hàng khi có sự khớp trong bất kỳ table nào.
  4. CTE (Common Table Expression) trong PostgreSQL là gì?

    • CTE là một tập kết quả tạm thời có thể được tham chiếu trong một câu lệnh SELECT, INSERT, UPDATE hoặc DELETE. Nó được định nghĩa bằng cách sử dụng mệnh đề WITH.
  5. Sự khác biệt giữa UNIONUNION ALL trong PostgreSQL là gì?

    • UNION kết hợp kết quả của hai truy vấn và loại bỏ các giá trị trùng lặp.
    • UNION ALL kết hợp kết quả của hai truy vấn mà không loại bỏ các giá trị trùng lặp, do đó nhanh hơn.
  6. jsonjsonb trong PostgreSQL là gì?

    • json là một kiểu dữ liệu lưu trữ dữ liệu JSON dưới dạng text, trong khi jsonb lưu trữ dữ liệu JSON ở định dạng nhị phân để hỗ trợ indexing và hiệu suất tốt hơn.
  7. Stored procedure trong PostgreSQL là gì?

    • Stored procedure là một tập hợp các câu lệnh SQL có thể được thực thi trên server cơ sở dữ liệu. Nó cho phép tái sử dụng mã và thực hiện các hoạt động phức tạp.
  8. Trigger trong PostgreSQL là gì?

    • Trigger là một function được tự động gọi trước hoặc sau khi một sự kiện (như INSERT, UPDATE, DELETE) xảy ra trên một table.
  9. Window function trong PostgreSQL là gì?

    • Window function thực hiện các phép tính trên một tập hợp các rows liên quan đến hàng hiện tại, cho phép thực hiện các tác vụ như tính tổng cộng dồn và tính trung bình di động.
  10. PostgreSQL xử lý đồng thời như thế nào?

    • PostgreSQL sử dụng MVCC và một cơ chế khóa (row-level locking) để quản lý quyền truy cập đồng thời vào dữ liệu, cho phép nhiều giao dịch xảy ra đồng thời mà không có xung đột.

3. Câu hỏi PostgreSQL cấp độ nâng cao:

  1. Partitioned table trong PostgreSQL là gì?

    • Partitioned table trong PostgreSQL là một cấu trúc logic cho phép chia một table lớn thành các phần nhỏ hơn và dễ quản lý hơn. Điều này cải thiện hiệu suất và khả năng quản lý với các tập dữ liệu lớn.
  2. Replication hoạt động như thế nào trong PostgreSQL?

    • PostgreSQL hỗ trợ streaming replication, nơi mà các thay đổi từ server chính được liên tục gửi đến một server dự phòng. Nó cũng hỗ trợ logical replication để sao chép các tables cụ thể.
  3. pg_stat_activity là gì?

    • pg_stat_activity là một view hệ thống cung cấp thông tin về các truy vấn và kết nối đang hoạt động trên server PostgreSQL, hữu ích cho việc giám sát hiệu suất.
  4. Tablespace trong PostgreSQL là gì?

    • Tablespace là một vị trí trên đĩa nơi PostgreSQL lưu trữ các tệp dữ liệu. Nó cho phép quản trị viên lưu trữ các đối tượng cơ sở dữ liệu trong các hệ thống tệp riêng biệt để cải thiện hiệu suất.
  5. Làm thế nào để tối ưu hóa truy vấn trong PostgreSQL?

    • Các kỹ thuật tối ưu hóa truy vấn bao gồm sử dụng indexing phù hợp, phân tích kế hoạch truy vấn với EXPLAIN, phân vùng các tables lớn, sử dụng VACUUM thường xuyên và tận dụng materialized views cho dữ liệu truy cập thường xuyên.

Bình luận

Bài viết tương tự

- vừa được xem lúc

002: Hiểu về Index để tăng performance với PostgreSQL P1

Bài viết nằm trong series Performance optimization với PostgreSQL. Từ bài này sẽ liên quan nhiều đến practice nên các bạn chuẩn bị env và data trước.

0 0 500

- vừa được xem lúc

003: Hiểu về Index để tăng performance với PostgreSQL P2

Bài viết nằm trong series Performance optimization với PostgreSQL. . . B-Tree index.

0 0 527

- vừa được xem lúc

004: Hiểu về Index để tăng performance với PostgreSQL P3

Bài viết nằm trong series Performance optimization với PostgreSQL. . 1) What. Trước khi đi vào chi tiết, cùng xem lại nhiệm vụ, tính chất của hash function:.

0 0 120

- vừa được xem lúc

Hiểu về Join để tăng performance với PostgreSQL

Bài viết nằm trong series Performance optimization với PostgreSQL. Chúng ta biết có 4 loại join cơ bản sau:. . .

0 0 186

- vừa được xem lúc

006: Partitioning data với PostgreSQL P1

Bài viết nằm trong series Performance optimization với PostgreSQL. 1) Horizontal & Vertical partitioning.

0 0 71

- vừa được xem lúc

007: Partitioning data với PostgreSQL P2

Bài viết nằm trong series Performance optimization với PostgreSQL. . . Partition by list.

0 0 87