inflearn logo

Thực chiến về lock và deadlock trong MySQL dành cho lập trình viên Spring·JPA — tái hiện bằng mã và khắc phục sự cố chỉ xảy ra trong môi trường production

Truy vấn chạy nhanh nhưng yêu cầu vẫn phải chờ — nguyên nhân là khóa. Với dự án thực hành MySQL 8.0, Spring Boot và JPA, bạn sẽ dùng các bài kiểm thử để tái hiện khóa bản ghi và khóa khoảng trống, 4 dạng deadlock, giao dịch kéo dài và cạn kiệt connection pool, khóa metadata trong khi triển khai, cũng như tình trạng cập nhật bị mất; sau đó sửa bằng mã và xác nhận lại bằng chính các bài kiểm thử đó.

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

Java
Java
SQL
SQL
MySQL
MySQL
Docker
Docker
Spring Boot
Spring Boot
Java
Java
SQL
SQL
MySQL
MySQL
Docker
Docker
Spring Boot
Spring Boot

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

  • Dùng performance_schema.data_locks·data_lock_waits·innodb_trx để xác định ai đang giữ khóa gì và ai đang chờ, đồng thời đọc các lỗi 1205·1213.

  • Kiểm tra bằng các bài kiểm thử cách chỉ mục, mức cô lập, phạm vi `@Transactional` và thời điểm flush làm thay đổi phạm vi cũng như thời gian giữ khóa.

  • Đọc log deadlock gốc và khắc phục tận gốc ở cấp cấu trúc các vấn đề về thứ tự không nhất quán, thao tác chèn nếu chưa tồn tại, ghi theo lô so với từng mục riêng lẻ và deadlock khóa ngoại. Giữ cơ chế thử lại làm lớp bảo vệ dự phòng.

  • Tái hiện và ngăn chặn tình trạng lệnh gọi bên ngoài trong giao dịch dẫn đến cạn kiệt connection pool, cũng như hàng đợi chờ khóa metadata trong quá trình triển khai.

  • Giải quyết các hàng nóng như phiếu giảm giá dành cho người đăng ký trước và bộ đếm, cùng các vấn đề cập nhật bị mất và lệch ghi bằng UPDATE nguyên tử, đọc có khóa và khóa hàng đại diện.

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 Spring có 1–5 năm kinh nghiệm, đã học về kế hoạch thực thi, index và kiến thức cơ bản về JPA, giờ muốn tìm hiểu cách xử lý sự cố trong môi trường production.

  • Những người từng gặp lỗi 1205·1213 hoặc bị quá thời gian chờ kết nối nhưng không thể giải thích nguyên nhân

  • Trưởng nhóm phát triển muốn chỉ ra các rủi ro về giao dịch và khóa trong buổi đánh giá mã nguồn.

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

  • @Transactional, kiến thức cơ bản về entity và repository của JPA

  • Kiến thức cơ bản về chỉ mục và kế hoạch thực thi

  • JDK 17 trở lên, Docker (hoặc MySQL 8.0 cài đặt cục bộ)

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ả

52 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.367.619 ₫