PostgreSQL của nhà phát triển AI tại Thung lũng Silicon, người xử lý hơn 200 tỷ dữ liệu
Đây là khóa học giúp bạn trau dồi kỹ năng sử dụng PostgreSQL cần thiết trong kỷ nguyên AI dưới góc nhìn thực tiễn, vượt xa mức độ CRUD đơn thuần. Dựa trên kinh nghiệm phát triển AI tại Thung lũng Silicon, bạn sẽ được học từng bước cách thiết kế và vận hành JSON, Index, Transaction cho đến pgvector trong các dịch vụ thực tế, từ đó nắm vững phương pháp giải quyết các cấu trúc dữ liệu phức tạp và vấn đề về hiệu suất.
Tôi đã xem kỹ bài giảng rồi.
Tôi mua khóa học này vì có việc cần tối ưu hóa (tuning) PostgreSQL, nhưng có vẻ nội dung về phần tuning không được đi sâu như tôi mong đợi.
Cá nhân tôi nghĩ khóa học này sẽ phù hợp với những ai muốn tìm hiểu về PostgreSQL một cách bao quát và rộng rãi.
5.0
warna
92% đã tham gia
Tôi nghĩ đây thực sự là một bài giảng ở đẳng cấp rất hiếm thấy.. Tôi mới chỉ từng sử dụng MySQL thôi, nhưng qua đây tôi đã hiểu rõ hơn về sức hấp dẫn của PostgreSQL.
Cảm ơn bạn vì nội dung tuyệt vời này.
5.0
02년생 개발자
95% đã tham gia
Đây là người chia sẻ kiến thức duy nhất trên Inflearn mà tôi luôn bật thông báo và theo dõi sát sao...
Thầy luôn giảng giải lý thuyết thông qua nhiều hình ảnh minh họa đa dạng, và đúng như phần giới thiệu, 90% khóa học là thực hành. Chính vì vậy mà tôi thấy nó càng hữu ích và thú vị hơn.
Thay vì những bài giảng rập khuôn, thầy luôn dạy một cách thực tế nên rất hợp với phong cách của tôi. (Dù thỉnh thoảng thầy có mắc lỗi ㅋㅋㅋ nhưng thầy cũng thừa nhận một cách rất ngầu).
Tôi cũng đang tham gia cộng đồng, thầy luôn chia sẻ những thông tin hữu ích và trả lời mọi thắc mắc một cách rất thân thiện, thực sự tôi đã học hỏi được rất nhiều.
Luôn cảm ơn thầy rất nhiều. Tôi cũng hay viết đánh giá khóa học nhưng đây là lần đầu tiên tôi viết dài như thế này!!
Bạn sẽ nhận được điều này sau khi học.
Khả năng thiết kế cơ sở dữ liệu dựa trên PostgreSQL và thiết kế cấu trúc bảng
Khả năng viết SQL tập trung vào thực tiễn và vận dụng các mẫu truy vấn, chỉnh sửa, xóa dữ liệu.
Năng lực tối ưu hóa hiệu suất sử dụng Index, JOIN và truy vấn tổng hợp
Khả năng xử lý dữ liệu trong kỷ nguyên AI sử dụng JSONB, các tính năng mở rộng và pgvector
Hiểu về mô hình hóa dữ liệu thực tiễn và quan điểm vận hành dựa trên PostgreSQL
Các Plugin đa dạng trong hệ sinh thái PostgreSQL
Phát triển · Lập trình · Cơ sở dữ liệu
Từ SQL cơ bản đến tinh chỉnh chỉ mục · transaction · pgvector Khóa học xử lý tất cả chỉ với một PostgreSQL
Khóa học này là khóa học PostgreSQL dành cho người mới bắt đầu, giúp bạn nắm vững từ SQL cơ bản đến tối ưu hóa chỉ mục (index tuning), giao dịch (transaction), JSONB và cả pgvector thông qua thực hành. Khóa học sẽ giúp bạn giải quyết gọn gàng trong cùng một cơ sở dữ liệu duy nhất thay vì quy trình phức tạp như: thêm bộ lưu trữ khi log tăng lên, thêm một công cụ tìm kiếm khi cần tính năng tìm kiếm, và thêm một DB vector khác cho các tính năng AI.
Mức độ Nhập môn
Trọng tâm thực hành
Môi trường Docker
Thời gian học không giới hạn
Cơ bản → Phân tánMột lộ trình từ khái niệm quan hệ đến môi trường phân tán
Từ cơ bản đến phân tánBắt đầu từ SQL cơ bản và kết thúc với Sharding · Scheduling
pgvector · JSONBtrong một DB duy nhất mà không cần phụ thuộc bên ngoài
Chương trình học được xây dựng bởi lập trình viên server hiện đang làm việc tại một startup AI ở Thung lũng Silicon, người từng xử lý quy mô dữ liệu hơn 200 tỷ bản ghi Môi trường thực hành chỉ cần macOS (Apple M3) và Docker là đủ
PostgreSQL · Cơ sở dữ liệu quan hệ đối tượngCREATE TABLE · Ràng buộcINSERT / SELECT / UPDATE / DELETEMẫu truy vấn UPSERTSắp xếp · Tổng hợp · Thiết kế JOINIndex B-Tree · GIN · GiSTTransaction · MVCC · Snapshot mức độ cô lậpDữ liệu phi cấu trúc JSONBTìm kiếm tương đồng Embedding pgvectorSearch Extension TokenizerThực hành tổng hợp cron · Sharding phân tánThực hành DockerPostgreSQL · Cơ sở dữ liệu quan hệ đối tượngCREATE TABLE · Ràng buộcINSERT / SELECT / UPDATE / DELETEMẫu truy vấn UPSERTSắp xếp · Tổng hợp · Thiết kế JOINIndex B-Tree · GIN · GiSTTransaction · MVCC · Snapshot mức độ cô lậpDữ liệu phi cấu trúc JSONBTìm kiếm tương đồng Embedding pgvectorSearch Extension TokenizerThực hành tổng hợp cron · Sharding phân tánThực hành Docker
Lý do khóa học này được bắt đầu
Kỹ sư Thung lũng Silicon đã đề xuất trước
Dưới đây là nội dung cuộc trò chuyện thực tế. Một nhà phát triển đến từ Thung lũng Silicon đã tham gia và trực tiếp đưa ra chủ đề mà anh ấy muốn đề cập là PostgreSQL.
Nhà phát triển đến từ Thung lũng SiliconCó lẽ... Tôi đã tham gia và quan sát mọi thứ được một thời gian rồi, và tôi có một chủ đề muốn thực hiện.. Liệu có ổn không ạ??
Nhà phát triển TossTôi thì lúc nào cũng ok hết kkkk Hong ơi làm việc thôi
Người phỏng vấn KakaoỒ!! Tôi cũng đang rất mong chờ xem bạn sẽ chọn chủ đề nào đấy!! Bạn dự định sẽ thực hiện về chủ đề gì vậy??
Lập trình viên từ Thung lũng SiliconVề phần DB ấy ạ ㅎㅎ Tôi định thử dùng PostgreSQL!! Vì nó cung cấp pgvector nên có thể tận dụng rất tốt trong thời đại AI mà không bị phụ thuộc quá nhiều
Người phỏng vấn KakaoỒ, tôi cũng chỉ mới nghe nói về cái đó chứ chưa dùng thử bao giờ.. Tôi cũng sẽ thử thanh toán và dùng xem sao nhé ㅎㅎ
Nhà phát triển Tossㅋㅋㅋㅋ Cứ tin tưởng mà theo thôi, anh ấy thực sự giỏi lập trình lắm, góc nhìn cũng rất rộng nữa
Hong à... lại đưa ra thử thách này cho em nữa rồi... Em chỉ tin tưởng và đi theo các anh thôi ㅋㅋㅋㅋ Anh cứ tổng hợp lại rồi gửi cho em, chúng ta cùng xem xét rồi triển khai nhé!!
Và đó là cách khóa học này được tạo ra. Đây là những nội dung mà một nhà phát triển đang thực sự sử dụng PostgreSQL tại Thung lũng Silicon đã nói trước rằng "nhất định phải đề cập đến điều này".
Những gì bạn đang trải qua hiện tại
Không phải là đang tạo ra các tính năng, mà là đang bảo trì hệ thống
Mọi thứ bắt đầu rất đơn giản. Chỉ cần một MySQL là đủ và chỉ cần các chức năng CRUD hoạt động tốt là không có vấn đề gì. Tuy nhiên, khi dịch vụ lớn mạnh thêm một chút, tình hình sẽ thay đổi.
Khi bắt đầu tích lũy log, bạn sẽ bắt đầu cân nhắc về một kho lưu trữ riêng biệt và
Khi chức năng tìm kiếm được thêm vào, Elasticsearch cũng được tích hợp theo và
Thêm Redis để xử lý thời gian thực và
Khi định thêm các tính năng AI, tôi lại thấy mình cần phải thêm cả Vector DB nữa.
"Tôi nhận ra mình không phải đang xây dựng tính năng, mà là đang bảo trì hệ thống"
Cơ sở dữ liệu trong kỷ nguyên AI
Tại sao PostgreSQL lại được săn đón trong kỷ nguyên AI?
Trước đây, các cơ sở dữ liệu chủ yếu tập trung vào vai trò lưu trữ và truy vấn dữ liệu có cấu trúc. Nhưng bây giờ đã khác. Với sự xuất hiện của các dịch vụ AI, chúng ta không còn chỉ xử lý các dữ liệu bảng đơn thuần nữa.
Dữ liệu phi cấu trúc dưới dạng JSON
Dữ liệu log tiếp tục tích tụ
Dữ liệu vector dựa trên embedding
Môi trường cần phải xử lý đồng thời cả ba loại dữ liệu này đã được hình thành. PostgreSQL cho phép cấu hình schema linh hoạt với JSONB, duy trì hiệu suất ngay cả trên các tập dữ liệu lớn nhờ vào lập chỉ mục (indexing), và xử lý cả tìm kiếm tương đồng dựa trên AI thông qua các tiện ích mở rộng như pgvector. Tất cả chỉ với một mình PostgreSQL mà không cần thêm bất kỳ sự phụ thuộc nào khác.
Không cần phải duy trì nhiều hệ thống riêng biệt, chỉ với một PostgreSQL duy nhất, bạn có thể đáp ứng các yêu cầu xử lý dữ liệu cần thiết trong kỷ nguyên AI.
Bản đồ chỉ mục
Khi nào nên sử dụng chỉ mục (index) nào trong PostgreSQL
Lý do PostgreSQL cung cấp nhiều loại chỉ mục (index) khác nhau là vì hình dạng của dữ liệu mỗi loại mỗi khác. Trong Phần 6: Tối ưu hóa chỉ mục và hiệu suất, chúng ta sẽ cùng thực hành về các tiêu chí lựa chọn này.
B-Tree
PostgreSQL의 기본 인덱스입니다. 등호와 부등호 비교, 범위 조회, 정렬처럼 값의 순서를 따지는 조건에 씁니다. 대부분의 컬럼에는 이것으로 충분합니다.
GIN
하나의 값 안에 여러 요소가 들어 있는 컬럼에 씁니다. JSONB의 키·값 검색이나 배열, 전문 검색처럼 "안에 무엇이 들어 있는가"를 묻는 조건에 맞습니다.
GiST
기하 데이터나 범위 타입처럼 값이 겹치는지, 포함하는지를 따져야 하는 조건에 씁니다. 위치 기반 데이터를 다룰 때 자주 등장합니다.
Xem trước nội dung bài giảng thực tế
Những cảnh như thế này sẽ được đề cập đến
Hình ảnh sẽ trực quan hơn lời giải thích. Tôi đã cắt trực tiếp một phần từ bài giảng thực tế.
Tokenizer sử dụng Search ExtensionQuá trình chia nhỏ văn bản thành các token bằng mở rộng tìm kiếm
Thực hành tổng hợp sử dụng cron & sharding phân tánBài thực hành kết thúc kết hợp lập lịch và cấu hình phân tán cùng một lúc
Thử phân tích truy vấn trong môi trường phân tánKiểm tra cách truy vấn hoạt động khi các nút được chia tách
Thực hành snapshot theo từng session dựa trên mức độ cô lậpChia các session và trực tiếp xác nhận sự khác biệt do mức độ cô lập tạo ra
Thay vì chắp vá, lựa chọn sử dụng chuyên sâu một thứ duy nhất
Bắt đầu từ SQL cơ bản và tiếp nối tuần tự cho đến môi trường phân tán.
PostgreSQL là hệ thống quản lý cơ sở dữ liệu quan hệ (DBMS/RDBMS) được sử dụng rộng rãi cùng với MySQL và Oracle. Mặc dù cùng là cơ sở dữ liệu quan hệ, nhưng những đặc điểm dưới đây chính là lý do để lựa chọn PostgreSQL.
ACID
PostgreSQL은 ACID 트랜잭션을 지원해 데이터 정합성을 보장합니다. 금융·결제처럼 정확성이 중요한 시스템에서도 안정적으로 씁니다.
MVCC
PostgreSQL의 MVCC(다중 버전 동시성 제어)는 읽기와 쓰기가 서로를 막지 않게 해 높은 동시성과 성능을 확보합니다.
Chỉ mục (Index)
PostgreSQL은 B-Tree, GIN, GiST 등 다양한 인덱스를 지원해 복잡한 쿼리도 효율적으로 처리합니다. JSONB 같은 비정형 컬럼에는 GIN 인덱스를 걸어 키·값 검색을 빠르게 만들 수 있습니다.
Tính mở rộng
PostgreSQL은 사용자 정의 함수·타입·확장 모듈을 통해 데이터베이스 자체를 유연하게 확장할 수 있습니다.
SQL chuẩn chuẩn
PostgreSQL은 표준 SQL에 충실하면서도 실무에서 필요한 기능을 폭넓게 제공합니다.
JSONB · GIS
PostgreSQL은 관계형 데이터를 넘어 JSONB 같은 반정형 데이터와 위치 기반(GIS) 데이터까지 하나의 데이터베이스로 처리합니다.
Hệ sinh thái
PostgreSQL은 pgvector, PostGIS 같은 확장을 상황에 맞게 얹어 쓰는 확장 생태계를 갖추고 있습니다.
Tài liệu chính thức mô tả về PostgreSQL như thế này.
PostgreSQL là một hệ thống cơ sở dữ liệu đối tượng-quan hệ mã nguồn mở mạnh mẽ, nổi tiếng với độ tin cậy cao, tính năng phong phú và hiệu suất vượt trội.
PostgreSQL là một hệ quản trị cơ sở dữ liệu đối tượng - quan hệ nguồn mở mạnh mẽ, nổi tiếng với độ tin cậy cao, tính năng phong phú và hiệu suất vượt trội.
Ngay cả với cùng một bảng, phản hồi của truy vấn sẽ khác nhau tùy thuộc vào chỉ mục (index) nào được thiết lập, và dữ liệu mà các phiên (session) khác nhìn thấy sẽ thay đổi chỉ dựa trên một dòng cấu hình mức độ cô lập (isolation level). Biết về các tính năng và biết nên chọn gì trong tình huống hiện tại là hai việc hoàn toàn khác nhau.
Lý do tại sao bài giảng này đặc biệt
Tại sao lại là khóa học PostgreSQL này?
Được xây dựng dưới góc nhìn của một nhà phát triển đang làm việc tại Thung lũng Silicon
Đây là khóa học được xây dựng cùng với nhà phát triển server có 13 năm kinh nghiệm hiện đang làm việc trong lĩnh vực AI tại Thung lũng Silicon. Khóa học chứa đựng trọn vẹn những quan điểm và tiêu chuẩn đánh giá được tích lũy từ quá trình sử dụng PostgreSQL trong thực tế.
Phần lớn bài giảng bao gồm thực hành và truy vấn.
Tất cả các bài giảng đều cung cấp các câu lệnh truy vấn PostgreSQL thực tế, và phần giải thích khái niệm luôn đi kèm với thực hành. Hầu hết các bài giảng đều được tiến hành thông qua việc trực tiếp thực thi các câu lệnh truy vấn.
Không chỉ là nơi lưu trữ đơn thuần, mà được xử lý như trung tâm của hệ thống
Không chỉ dừng lại ở SQL cơ bản. Khóa học sẽ tiếp tục với các nội dung về chỉ mục (index) và hiệu suất, transaction và tính nhất quán, môi trường phân tán và lập lịch, giúp bạn nhìn nhận cơ sở dữ liệu như một thành phần trung tâm trong thiết kế dịch vụ.
Trực tiếp xác nhận vai trò của PostgreSQL trong kỷ nguyên AI
Trực tiếp thực thi các truy vấn tìm kiếm vector embedding bằng pgvector. Bạn có thể tận mắt xác nhận việc tìm kiếm độ tương đồng được thực hiện ngay trong PostgreSQL mà không cần một cơ sở dữ liệu vector riêng biệt.
Khuyên dùng cho những người sau
Khóa học PostgreSQL này dành cho ai?
Các nhà phát triển trình độ sơ - trung cấp muốn củng cố vững chắc kiến thức cơ bản về PostgreSQLNhững người muốn học một cách có hệ thống về các mẫu INSERT·UPDATE·DELETE đa dạng, tối ưu hóa SELECT và cách sử dụng Index thay vì chỉ dừng lại ở CRUD đơn thuần.
Lập trình viên Backend muốn biết cách vận dụng PostgreSQLNhững người muốn hệ thống lại từ các khái niệm cơ bản như DDL·DML cho đến các góc nhìn có thể áp dụng ngay vào thực tế trong một lần.
Sinh viên mới tốt nghiệp hoặc lập trình viên Backend cấp độ Junior đang chuẩn bị phỏng vấnNhững người muốn hệ thống lại các chủ đề thường gặp như Transaction, Integrity, Index, FK dựa trên tiêu chuẩn thực tế.
Nhà phát triển định hướng senior muốn xem PostgreSQL là cấu trúc cốt lõi của hệ thốngNhững người muốn hiểu DB như một thành phần trung tâm của thiết kế dịch vụ thay vì chỉ là nơi lưu trữ, và quan tâm đến việc tái cấu trúc schema cũng như cấu trúc DB đang phát triển.
Những nhà phát triển tò mò về vai trò của cơ sở dữ liệu trong kỷ nguyên AINhững người muốn trực tiếp chạy các truy vấn tìm kiếm vector embedding bằng pgvector
Ngược lại, nếu bạn có thể giải thích ngay lập tức về thiết kế JSONB, cách lựa chọn index và sự khác biệt giữa các mức độ cô lập (isolation levels), thì bạn không cần đến khóa học này.
Chương trình học
Lộ trình khóa học PostgreSQL
Khóa học được cấu trúc theo trình tự dành cho những nhà phát triển mới bắt đầu học PostgreSQL. Bắt đầu từ những kiến thức cơ bản về cơ sở dữ liệu, nội dung sẽ tiếp nối tuần tự qua SQL cơ bản, thiết kế truy vấn, chỉ mục (index) và hiệu suất, giao dịch (transaction), Extension, cho đến phân tán. Các phần trước được thiết kế để làm tiền đề cho các phần sau.
Phần 1. Giới thiệu bài giảng
PostgreSQL, cơ sở dữ liệu đang nổi lên mạnh mẽ nhất trong kỷ nguyên AI!!
Cộng đồng KakaoTalk cùng với Hong!
Phần 2. Cơ bản về cơ sở dữ liệu và giới thiệu PostgreSQL
Khái niệm Cơ sở dữ liệu và Quan hệ
Đặc điểm của PostgreSQL và cấu hình môi trường Docker
Thiết lập kết nối DB
Phần 3. Quan hệ bảng và SQL cơ bản
Kiểu dữ liệu
Tạo bảng và các ràng buộc
INSERT và SELECT
UPDATE và DELETE
Các toán tử WHERE
Mẫu truy vấn UPSERT
Phần 4. Thiết kế Sắp xếp · Tổng hợp · JOIN
Nội dung bao gồm sắp xếp, tổng hợp và thiết kế JOIN để liên kết nhiều bảng với nhau.
Phần 5. Các mẫu truy vấn SQL nâng cao
Thực hành để nắm vững các mẫu truy vấn nâng cao vượt xa các cú pháp cơ bản.
Phần 6. Index và tối ưu hóa hiệu suất
Nội dung đề cập đến các chỉ mục B-Tree, GIN, GiST và quan điểm tối ưu hóa hiệu suất.
Phần 7. Giao dịch · Tính đồng thời · Khả năng mở rộng
Nội dung bao gồm các cấp độ giao dịch và cô lập, tính đồng thời dựa trên MVCC và khả năng mở rộng.
Phần 8. Tính năng Extension
Nội dung này đề cập đến các tính năng mở rộng của hệ sinh thái PostgreSQL như pgvector và mở rộng tìm kiếm.
Phần 9. Môi trường Distributed và Scheduling
Hoàn tất khóa học với bài thực hành tổng hợp về cấu hình môi trường phân tán và lập lịch dựa trên cron.
Công nghệ được đề cập · Môi trường thực hành
Thực hành bằng cái gì?
PostgreSQL
JSONB
B-Tree · GIN · GiST
MVCC · Mức độ cô lập
pgvector
Search Extension
cron · phân mảnh phân tán (distributed sharding)
Docker
macOS (Apple M3)
DBMS/RDBMS
cơ sở dữ liệu
Khóa học được thực hiện trên môi trường Apple M3 Air, sử dụng Docker để tối ưu hóa tài nguyên và thiết lập môi trường khép kín. Bạn chỉ cần khởi chạy một container trên máy cục bộ là có thể bắt đầu theo dõi ngay.
Nếu bạn đã xem hết chương trình học trung tâm
Thời hạn khóa học là vô hạn. Bạn có thể mở ra xem lại bất cứ khi nào cần thiết.
Nhà phát triển tại Thung lũng Silicon đã cùng chuẩn bị bài giảng này
Thung lũng Silicon · Nhà phát triển máy chủ startup AI
Waddy
Là một nhà phát triển server backend với 13 năm kinh nghiệm từng làm việc tại nhiều doanh nghiệp trong nước, gần đây tôi đã chuyển sang Thung lũng Silicon để thực hiện các dự án phát triển liên quan đến AI. Tôi tham gia vào dự án này thông qua mối nhân duyên với một người bạn là nhà phát triển tại Toss, và tôi sẽ cố gắng truyền đạt những kiến thức mình biết một cách dễ hiểu và thoải mái nhất có thể.
[現] Nhà phát triển máy chủ tại startup AI ở Thung lũng Silicon
[前] Nhà phát triển máy chủ tại trụ sở chính Kakao
[前] Nhà phát triển máy chủ tại 2~3 startup trong nước
[前] Cựu sinh viên chuyên ngành Khoa học máy tính tại nước ngoài
Câu hỏi thường gặp
Câu hỏi thường gặp về khóa học PostgreSQL
PostgreSQL là loại cơ sở dữ liệu nào?
PostgreSQL là một hệ quản trị cơ sở dữ liệu đối tượng - quan hệ mã nguồn mở. Mặc dù xử lý các bảng quan hệ, nhưng nó được trang bị sẵn các tính năng như giao dịch ACID và đa phiên bản (MVCC), các loại chỉ mục B-Tree·GIN·GiST, cùng các hàm, kiểu dữ liệu và mô đun mở rộng do người dùng định nghĩa. Nhờ đó, bạn có thể xử lý cả dữ liệu có cấu trúc và dữ liệu phi cấu trúc như JSON·Vector trong cùng một cơ sở dữ liệu. Khóa học này sẽ giúp bạn làm quen với các tính năng đó thông qua thực hành theo trình tự: SQL cơ bản → Chỉ mục (Index) → Giao dịch (Transaction) → Phần mở rộng (Extension).
Tại sao PostgreSQL lại được chú ý trong kỷ nguyên AI?
Đó là bởi vì dữ liệu cần xử lý không còn chỉ là các bảng có cấu trúc. Chúng ta cần xử lý đồng thời cả dữ liệu phi cấu trúc dạng JSON, các bản ghi log tích tụ liên tục và dữ liệu vector dựa trên embedding. PostgreSQL xử lý tất cả tại một nơi: sơ đồ linh hoạt với JSONB, hiệu suất tập dữ liệu lớn với lập chỉ mục (indexing), và tìm kiếm tương đồng với tiện ích mở rộng pgvector. Điểm mấu chốt là bạn không cần phải kết nối nhiều hệ thống lại với nhau.
pgvector là gì?
pgvector là một tiện ích mở rộng (Extension) bổ sung kiểu dữ liệu vector và các toán tử tính toán khoảng cách tương đồng cho PostgreSQL. Khi lưu trữ các bản nhúng (embedding) vào cột, bạn có thể tìm thấy các mục tương đồng nhất chỉ bằng điều kiện sắp xếp trong câu lệnh SELECT thông thường, cho phép tích hợp các tính năng AI mà không cần thiết lập một cơ sở dữ liệu vector riêng biệt. Chúng ta sẽ trực tiếp thực thi truy vấn này trong phần 8 về tính năng Extension.
Có thể tạo index cho cột JSONB trong PostgreSQL không?
Vâng. Bạn có thể tạo chỉ mục GIN trên cột JSONB để truy vấn theo các khóa hoặc giá trị cụ thể mà không cần quét toàn bộ dữ liệu. Điều này có nghĩa là ngay cả khi lưu trữ dữ liệu phi cấu trúc, bạn vẫn có thể tìm kiếm nhanh chóng như các bảng quan hệ. Các loại chỉ mục B-Tree, GIN và GiST sẽ được đề cập trong Phần 6: Chỉ mục và Tối ưu hóa hiệu suất.
PostgreSQL khác với các RDBMS khác như MySQL hay Oracle ở điểm nào?
Cả ba đều là Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) nên có cùng khung sườn là bảng, SQL và transaction. Điểm khác biệt của PostgreSQL nằm ở cấu trúc mở rộng và chỉ mục (index). Ngoài B-Tree, PostgreSQL cung cấp sẵn các chỉ mục GIN và GiST, cho phép đánh chỉ mục trên cả các cột phi cấu trúc như JSONB hay mảng, đồng thời có thể thêm trực tiếp tính năng tìm kiếm vector vào trong cơ sở dữ liệu bằng cách cài đặt các tiện ích mở rộng như pgvector. Vì vậy, khi dịch vụ phát triển lớn hơn, bạn có thể giảm bớt việc phải gắn thêm từng thứ một như kho lưu trữ log, công cụ tìm kiếm hay DB vector. Khóa học này sẽ cùng thảo luận về tiêu chí lựa chọn và những hạn chế đó trong phần 6 và 8.
Người mới bắt đầu học PostgreSQL có thể theo kịp không?
Vâng. Đây là bài giảng ở cấp độ nhập môn, bắt đầu từ các khái niệm về cơ sở dữ liệu và quan hệ, sau đó tiến dần lên các kiểu dữ liệu, ràng buộc và SQL cơ bản. Chỉ cần có kinh nghiệm sử dụng SQL cơ bản là đủ, còn các phần về chỉ mục (index), giao dịch (transaction) và môi trường phân tán ở phía sau sẽ là những nội dung mới ngay cả với những người đã có kinh nghiệm thực tế.
Mức độ cô lập giao dịch trong PostgreSQL được xử lý như thế nào?
PostgreSQL hỗ trợ các mức cô lập Read Committed, Repeatable Read, Serializable và giá trị mặc định là Read Committed. Trong Phần 7 về Giao dịch · Tính đồng thời · Khả năng mở rộng, chúng ta sẽ chia các phiên (session) và thay đổi mức cô lập để trực tiếp kiểm tra xem bản chụp (snapshot) mà mỗi phiên nhìn thấy tại cùng một thời điểm khác nhau như thế nào.
Môi trường thực hành được cấu hình như thế nào?
Khóa học được thực hiện trên môi trường Apple M3 Air, sử dụng Docker để đảm bảo tính gọn nhẹ và thiết lập môi trường khép kín. Phần 2 sẽ hướng dẫn về các đặc điểm của PostgreSQL cùng với cách cấu hình môi trường Docker và thiết lập kết nối DB, vì vậy bạn chỉ cần làm theo hướng dẫn đó là được.
Những Extension nào sẽ được đề cập đến?
Trong Phần 8 về tính năng Extension, chúng ta sẽ tìm hiểu về tìm kiếm vector nhúng (embedding vector) sử dụng pgvector và bộ tách từ (tokenizer) sử dụng Search Extension. Tiếp theo, ở Phần 9, chúng ta sẽ kết thúc bằng một bài thực hành tổng hợp kết hợp giữa cron và phân mảnh dữ liệu phân tán (distributed sharding).
Tôi đã đang sử dụng PostgreSQL trong thực tế rồi, liệu có lý do gì để nghe (khóa học) này không?
PostgreSQL hỗ trợ các mức cô lập Read Committed, Repeatable Read, Serializable và giá trị mặc định là Read Committed. Tùy thuộc vào mức cô lập mà thời điểm các thay đổi đã commit từ session khác hiển thị trong transaction của bạn sẽ khác nhau. Việc viết truy vấn và việc giải thích sự khác biệt này là hai việc hoàn toàn khác nhau. Trong phần 7, chúng ta sẽ chia các session và xác nhận thông qua thực hành xem snapshot theo từng mức cô lập thực tế thay đổi như thế nào, phần 6 sẽ đề cập đến tiêu chí lựa chọn index, và phần 9 sẽ xử lý cách thức truy vấn vận hành trong môi trường phân tán.
Tự học qua tài liệu chính thức cũng được mà đúng không?
Tài liệu chính thức giải thích chính xác từng tính năng là gì. Tuy nhiên, tài liệu không thay bạn quyết định xem nên đặt chỉ mục (index) nào cho bảng hiện tại, hay việc thay đổi mức độ cô lập (isolation level) sẽ làm thay đổi điều gì trong dịch vụ của bạn. Khóa học này dành thời gian để xác nhận những quyết định đó bằng cách trực tiếp chạy các câu truy vấn.
Mức độ là dành cho người mới bắt đầu, nhưng phạm vi nội dung bao phủ đến đâu vậy ạ?
Bắt đầu với các khái niệm về cơ sở dữ liệu và quan hệ, nhưng kết thúc sẽ là Index và tối ưu hóa hiệu suất (Phần 6), Transaction · Tính đồng nhất (Phần 7), Extension (Phần 8), Môi trường phân tán và lập lịch (Phần 9). Toàn bộ nội dung được kết nối theo luồng này, và vì thời hạn khóa học là vô hạn nên bạn có thể xem lại bất kỳ phần nào cần thiết.
Thứ tự lộ trình bài giảng PostgreSQL như thế nào?
Bắt đầu từ khái niệm cơ sở dữ liệu và quan hệ, thiết lập môi trường Docker, tiếp nối theo thứ tự: kiểu dữ liệu và ràng buộc, SQL cơ bản, thiết kế Sắp xếp·Tổng hợp·JOIN, các mẫu truy vấn nâng cao, Index và tối ưu hóa hiệu suất, Transaction·Tính đồng thời·Khả năng mở rộng, Extension, môi trường phân tán và lập lịch. Thời hạn khóa học là vô hạn.
Tại sao lại chọn chỉ mục (index) như vậy, và nếu thay đổi mức độ cô lập (isolation level) thì điều gì sẽ khác đi
Bắt đầu từ SQL cơ bản, bạn sẽ được kiểm tra tất cả thông qua thực hành, từ chỉ mục (index) và hiệu suất, giao dịch (transaction), cho đến tìm kiếm vector với pgvector.
Tôi đang vận hành một phòng chat mở dành cho các nhà phát triển để chia sẻ về sự nghiệp, tình hình thực tế tại nơi làm việc và các vấn đề kỹ thuật. Đừng ngần ngại chia sẻ những thắc mắc khi nghe bài giảng hoặc những trăn trở trong công việc thực tế nhé.
Nhà phát triển backend mới bắt đầu học PostgreSQL nhưng muốn hiểu rõ một cách bài bản và tập trung vào thực tế công việc.
Nhà phát triển muốn học hỏi chuyên sâu hơn mức CRUD, bao gồm cả chỉ mục (index), giao dịch (transaction) và cấu trúc JOIN.
Những nhà phát triển muốn xử lý JSON, dữ liệu vector và các tính năng mở rộng bằng PostgreSQL trong kỷ nguyên AI
Các nhà phát triển trình độ sơ cấp và trung cấp thường xuyên gặp phải các vấn đề về hiệu suất cơ sở dữ liệu và tối ưu hóa truy vấn.
Sinh viên đang chuẩn bị xin việc và nhà phát triển đang làm việc muốn tăng cường năng lực thiết kế cơ sở dữ liệu và vận dụng SQL trong phỏng vấn hoặc thực tế công việc.
Dành cho những ai tò mò về hệ sinh thái Plugin đa dạng của PostgreSQL
Tôi bắt đầu học lập trình sau một thời gian dài lười biếng ở nhà và cảm thấy hứng thú với nó, hiện tại tôi đang đảm nhận việc phát triển máy chủ nền tảng (platform server) tại Pangyo. Tôi tiếp tục hoạt động với tư cách là người chia sẻ kiến thức vì muốn cung cấp cho các bạn phương pháp tôi đã học cũng như những vấn đề và giải pháp khác nhau mà các bạn có thể gặp phải trong thực tế.
Bài giảng không chỉ được tạo ra từ kiến thức của riêng tôi. Mọi bài giảng đều có sự đồng hành của những người cộng sự.
Tôi nghĩ đây thực sự là một bài giảng ở đẳng cấp rất hiếm thấy.. Tôi mới chỉ từng sử dụng MySQL thôi, nhưng qua đây tôi đã hiểu rõ hơn về sức hấp dẫn của PostgreSQL.
Cảm ơn bạn vì nội dung tuyệt vời này.
Đây là người chia sẻ kiến thức duy nhất trên Inflearn mà tôi luôn bật thông báo và theo dõi sát sao...
Thầy luôn giảng giải lý thuyết thông qua nhiều hình ảnh minh họa đa dạng, và đúng như phần giới thiệu, 90% khóa học là thực hành. Chính vì vậy mà tôi thấy nó càng hữu ích và thú vị hơn.
Thay vì những bài giảng rập khuôn, thầy luôn dạy một cách thực tế nên rất hợp với phong cách của tôi. (Dù thỉnh thoảng thầy có mắc lỗi ㅋㅋㅋ nhưng thầy cũng thừa nhận một cách rất ngầu).
Tôi cũng đang tham gia cộng đồng, thầy luôn chia sẻ những thông tin hữu ích và trả lời mọi thắc mắc một cách rất thân thiện, thực sự tôi đã học hỏi được rất nhiều.
Luôn cảm ơn thầy rất nhiều. Tôi cũng hay viết đánh giá khóa học nhưng đây là lần đầu tiên tôi viết dài như thế này!!
Chào bạn nhà phát triển sinh năm 02, cảm ơn bạn đã để lại đánh giá tốt nhé!! Mình sẽ cố gắng cung cấp thêm nhiều nội dung hữu ích hơn nữa trong tương lai!! Chúc bạn một ngày tốt lành nhé!
Tôi đã xem kỹ bài giảng rồi.
Tôi mua khóa học này vì có việc cần tối ưu hóa (tuning) PostgreSQL, nhưng có vẻ nội dung về phần tuning không được đi sâu như tôi mong đợi.
Cá nhân tôi nghĩ khóa học này sẽ phù hợp với những ai muốn tìm hiểu về PostgreSQL một cách bao quát và rộng rãi.
Chào bạn junki, cảm ơn bạn đã để lại đánh giá. Nếu bạn có thể chia sẻ thêm về những phần mà bạn còn thắc mắc, mình sẽ nhanh chóng giải đáp cho bạn.
Rất mong nhận được câu hỏi của bạn qua Inflearn!! Nếu bạn tham gia cộng đồng của chúng mình và chia sẻ những điều bạn học được trong quá trình thực hiện tuning thì sẽ giúp ích được rất nhiều cho mọi người đấy ạ hehe.
Chúc bạn một ngày tốt lành!
Chào giảng viên.
Trước hết, tôi đã xem kỹ bài giảng và nó đã giúp ích cho tôi rất nhiều. Cảm ơn giảng viên đã dành thời gian phản hồi cho tôi.
Thực tế là các bài giảng tiếng Hàn về PostgreSQL không có nhiều nên tôi đã tìm xem một số bài giảng nước ngoài trên YouTube. Tôi thấy rằng liên quan đến việc tối ưu hóa (tuning), họ không chỉ đề cập đến cách viết câu lệnh truy vấn hay thiết lập index, mà còn nói về cấu trúc bộ nhớ của PostgreSQL và các giá trị thiết lập tương ứng.
Theo ý kiến cá nhân của tôi, sẽ thật tốt nếu những nội dung này cũng được đưa vào giải thích cùng.
(Ngoài ra, đây là mong muốn cá nhân của riêng tôi, tôi hy vọng sẽ có thêm phần giải thích về lệnh EXPLAIN với các trường hợp phức tạp và đa dạng hơn nữa.)
À, ra là vậy ạ ㅠㅠ Vì mình muốn đây là một bài giảng hữu ích cho cả những người mới bắt đầu nên mình đã đi chậm từ những khái niệm cơ bản, rất xin lỗi bạn vì chưa thể khai thác sâu đến khía cạnh tối ưu hóa (tuning) ㅠㅠ Mình sẽ cố gắng khai thác những nội dung chuyên sâu hơn trong tương lai để có thể làm hài lòng cả bạn junki nữa nhé!!
Tôi nhận ra rằng PostgreSQL (SQL Voi) đang là xu hướng hiện nay.
Là một người dùng vốn chỉ sử dụng Oracle và MySQL, đây quả là một trải nghiệm vô cùng mới mẻ.