inflearn logo

Thiết kế trừ tồn kho đồng thời của trưởng nhóm DBA hiện tại — cách cơ sở dữ liệu trụ vững trước lưu lượng truy cập sự kiện

Trực tiếp quan sát điểm nghẽn của DB khi cấp coupon và trừ tồn kho theo nguyên tắc ai đến trước được trước, thông qua thời gian chờ khóa, dòng dữ liệu nóng, độ dài danh sách lịch sử và số lượng kết nối. Đây là khóa học thực chiến của trưởng nhóm DBA đang làm nghề, dùng kịch bản thực hành chạy bằng Docker để chứng minh hiệu quả trước và sau khi thiết kế, từ UPDATE có điều kiện, khóa duy nhất, SKIP LOCKED, phân chia bộ đếm cho đến quyết định có nên dùng Redis hay không.

1 học viên đang tham gia khóa học này

Độ khó Trung cấp trở lên

Thời gian Không giới hạn

MySQL
MySQL
Redis
Redis
SQL
SQL
aws-aurora
aws-aurora
Docker
Docker
MySQL
MySQL
Redis
Redis
SQL
SQL
aws-aurora
aws-aurora
Docker
Docker

Bạn sẽ nhận được điều này sau khi học.

  • Khi lượng yêu cầu cấp theo thứ tự đến trước và khấu trừ tồn kho dồn dập, hãy tìm nút thắt dựa trên các chỉ số phía DB (thời gian chờ khóa hàng, tổng thời gian chờ khóa, số luồng đang chạy và độ dài danh sách history).

  • So sánh FOR UPDATE, UPDATE có điều kiện và khóa lạc quan trong cùng điều kiện bằng số liệu từ DB để lựa chọn.

  • Dùng khóa duy nhất, thứ tự câu lệnh và khóa idempotency để ngăn cấp phát trùng lặp và phát sinh bản ghi trùng khi thử lại, đồng thời tránh cạm bẫy của INSERT IGNORE.

  • Kho mã coupon được tạo sẵn dùng SKIP LOCKED; còn tồn kho trên một hàng thì dùng phân mảnh bộ đếm để vượt qua giới hạn thông lượng.

  • Tìm hiểu cách nhanh chóng trả về lỗi bằng cách xử lý lượng undo tích tụ trong các giao dịch dài, số lượng kết nối/max_connections và giới hạn thời gian chờ khóa.

  • Đọc biểu đồ buổi diễn tập sự kiện theo từng giây, rồi tìm cùng chỉ số theo tên trong Aurora CloudWatch và Performance Insights.

Khóa học này

Đây là khóa học thực chiến do trưởng nhóm DBA đang làm nghề trực tiếp giảng dạy, giúp bạn xác định DB bị nghẽn ở đâu khi xử lý coupon phát theo thứ tự đến trước và trừ tồn kho, thông qua các chỉ số như thời gian chờ khóa, hàng nóng, history list length và số lượng kết nối. Khóa học còn hướng dẫn từ UPDATE có điều kiện, khóa duy nhất, SKIP LOCKED, phân tách bộ đếm đến quyết định có nên dùng Redis, đồng thời chứng minh hiệu quả trước và sau khi thiết kế bằng 23 kịch bản chạy trên Docker.

Có rất nhiều khóa học giới thiệu các giải pháp xử lý đồng thời. Khóa học này đo lường chính những giải pháp đó từ phía DB. Mỗi bài học đều theo trình tự: mã nguồn → chạy thử → thời gian chờ khóa hàng · tổng thời gian chờ khóa · số luồng đang chạy · số lần rollback → cách khắc phục → đo lại theo cùng quy trình. Cuối khóa, bạn sẽ diễn tập toàn bộ một sự kiện kéo dài 20 giây và đọc các biểu đồ mà DBA theo dõi.

Bạn sẽ học được những điều này.

  • Khi việc cấp phát theo thứ tự đến trước và trừ tồn kho diễn ra dồn dập, hãy tìm nút thắt cổ chai qua các chỉ số phía DB (thời gian chờ khóa hàng, tổng thời gian chờ khóa, số luồng đang thực thi, history list length).

  • Tái hiện tình trạng cấp vượt số lượng ở mã đọc/ghi, rồi so sánh bằng số liệu DB trong cùng điều kiện giữa FOR UPDATE, UPDATE có điều kiện và khóa lạc quan để chọn cách phù hợp.

  • Ngăn phát hành trùng lặp và trùng lặp khi thử lại bằng khóa duy nhất, thứ tự câu lệnh và khóa idempotency, đồng thời tránh bẫy của INSERT IGNORE.

  • Vượt qua giới hạn thông lượng bằng cách dùng SKIP LOCKED cho kho mã coupon tạo sẵn và phân mảnh bộ đếm cho tồn kho chỉ có một hàng.

  • Tìm hiểu cách nhanh chóng trả về lỗi bằng cách kiểm soát lượng undo tích tụ do các giao dịch kéo dài, số lượng kết nối·max_connections và thời gian chờ khóa.

  • Theo dõi buổi diễn tập sự kiện qua biểu đồ theo từng giây, rồi tìm các chỉ số tương ứng theo tên trong Aurora CloudWatch và Performance Insights.

Phù hợp với những người này

  • Lập trình viên backend (1–5 năm kinh nghiệm) đang xây dựng các tính năng phục vụ theo thứ tự đăng ký, coupon, bán hàng giới hạn và quản lý tồn kho, hoặc chuẩn bị cho sự kiện.

  • Dành cho những ai đã học cách xử lý đồng thời nhưng vẫn thắc mắc “trong DB thì diễn ra như thế nào?”

  • Trưởng nhóm kỹ thuật cần rà soát các rủi ro về cơ sở dữ liệu trước sự kiện.

Kiến thức nền tảng

  • SELECT·UPDATE·INSERT và kiến thức cơ bản về giao dịch (BEGIN/COMMIT)

  • Khái niệm về chỉ mục và khóa chính, khởi chạy container bằng Docker (thực hành)

Những nội dung không đề cập đến

  • Kiến trúc ứng dụng như Kafka, bộ nhớ đệm và máy chủ hàng đợi

  • Nội dung chuyên sâu về nguyên lý khóa (gap lock, next-key lock) và phân tích deadlock (bài giảng về khóa và deadlock)

  • Cách viết mã Spring

Giới thiệu giảng viên

Tôi là Ju Gyeong-ho, đã có hơn 20 năm kinh nghiệm trong lĩnh vực cơ sở dữ liệu và CNTT. Với vai trò DBA kiêm quản lý nhóm Nền tảng Cơ sở dữ liệu, tôi phụ trách các nền tảng cơ sở dữ liệu và chuyên về MySQL, PostgreSQL, Oracle, MongoDB, tối ưu hóa SQL, AWS, Terraform và Python.

Trong lĩnh vực thương mại điện tử quy mô lớn, mỗi khi diễn ra sự kiện bán hàng theo hình thức ai đến trước được phục vụ trước, phát coupon hay bán số lượng giới hạn, tôi đều theo dõi các chỉ số phía DB và cùng đội ngũ phát triển điều chỉnh lại thiết kế. Khóa học này được tái tạo dựa trên kinh nghiệm đó, chỉ sử dụng dữ liệu giả lập phục vụ giảng dạy và kết quả chạy Docker cục bộ. Chúng tôi không sử dụng dữ liệu vận hành của công ty.

Lời thuyết minh trong video sử dụng giọng nói tổng hợp bằng AI. Mã nguồn, SQL và các giá trị đo lường trên màn hình là kết quả thực tế được thực thi trong môi trường thực hành.

Khuyến nghị cho
những người này

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

  • Lập trình viên backend (1–5 năm kinh nghiệm) đang xây dựng các tính năng đăng ký theo thứ tự đến trước, phiếu giảm giá, bán hàng giới hạn, quản lý tồn kho hoặc chuẩn bị cho sự kiện.

  • Dành cho những ai đã học cách xử lý đồng thời nhưng tò mò "trong DB thì trông như thế nào".

  • Trưởng nhóm kỹ thuật cần kiểm tra các rủi ro phía cơ sở dữ liệu trước sự kiện.

Cần biết trước khi bắt đầu?

  • Cơ bản về SELECT·UPDATE·INSERT và giao dịch (BEGIN/COMMIT)

  • Khái niệm về chỉ mục và khóa chính, chạy container bằng Docker (thực hành)

Xin chào
Đây là dorian05202988

Xác minh sự nghiệp

Tôi là một chuyên gia dữ liệu với hơn 20 năm kinh nghiệm trong lĩnh vực cơ sở dữ liệu và CNTT. Trong vai trò DBA và quản lý nhóm Nền tảng Cơ sở dữ liệu, tôi phụ trách các nền tảng cơ sở dữ liệu, với chuyên môn về MySQL, PostgreSQL, Oracle, MongoDB, tinh chỉnh SQL, AWS, Terraform và Python. Dựa trên kinh nghiệm trong các lĩnh vực trò chơi, tài chính và dịch vụ CNTT, tôi trình bày về cơ sở dữ liệu và kiến trúc đám mây. Tôi đã xuất bản 『Học các mẫu SQL tinh chỉnh thực tế Oracle』 và 『Sổ tay ứng dụng dự án thực tế Oracle Pro*C』, đồng thời thuyết trình về serverless, lựa chọn cơ sở dữ liệu và chiến lược đa cơ sở dữ liệu tại AWS Summit 2018·2019 và sự kiện 데이터야 놀자 2020. Gần đây, tôi tập trung vào phân tích và khuyến nghị tinh chỉnh truy vấn chậm bằng Bedrock LLM, tự động hóa việc tính toán thông số DB, cũng như quy trình tra cứu thông qua máy chủ DB Meta MCP và bot Slack. Tôi giải thích về tự động hóa cơ sở dữ liệu dành cho nhà phát triển và việc ứng dụng AI vào công việc dành cho người không chuyên về phát triển thông qua các bài thực hành phù hợp với đối tượng và mục tiêu của từng khóa học. Thay vì áp dụng nguyên xi các đề xuất của AI, tôi truyền đạt các tiêu chí đánh giá như kiểm tra tính tương đương của kết quả, kế hoạch thực thi và điều kiện quan sát; nếu thiếu căn cứ thì tạm thời chưa áp dụng. Dữ liệu vận hành của công ty và thông tin xác thực không được đưa vào tài liệu giảng dạy.

Thêm

Chương trình giảng dạy

Tất cả

48 bài giảng ∙ (3giờ 12phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học khác của dorian05202988

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Ưu đãi có thời hạn

52.800 ₫

20%

1.362.294 ₫