강의

멘토링

로드맵

Lập trình JPA tiêu chuẩn Java ORM - Cơ bản

Những người mới làm quen với JPA hoặc sử dụng JPA trong thực tế nhưng thiếu lý thuyết cơ bản Bằng cách tìm hiểu kỹ lý thuyết cơ bản về JPA, ngay cả những người mới bắt đầu cũng có thể tự tin sử dụng JPA trong thực tế.

(5.0) 2,133 đánh giá

25,418 học viên

Độ khó Cơ bản

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

Java
Java
JPA
JPA
Java
Java
JPA
JPA

Ra mắt khóa học Tối ưu hóa hiệu suất cơ sở dữ liệu thực chiến của Kim Young-han

Xin chào mọi người.

Khóa học Tối ưu hóa hiệu suất cơ sở dữ liệu thực chiến của Kim Young-han cuối cùng đã chính thức ra mắt.

Nhân dịp ra mắt, lộ trình cơ sở dữ liệu đang được giảm giá 30% 🙂

Tiêu đề: Cơ sở dữ liệu thực chiến của Kim Young-han - Tối ưu hóa hiệu năng, chinh phục toàn diện Kế hoạch thực thi và Chỉ mục

Số bài giảng: 104

Thời lượng khóa học: 21 giờ 10 phút

Liên kết: https://inf.run/Gcg6N


Và để kỷ niệm việc hoàn thành toàn bộ các khóa học trong lộ trình Backend bao gồm cả lộ trình Cơ sở dữ liệu, chúng tôi xin giới thiệu Backend Master Pass của Kim Young-han trong thời gian có hạn.

Liên kết Master Pass: https://inf.run/uixFt


<Đặc điểm khóa học>

Đặc điểm quan trọng nhất của khóa học này là chúng ta sẽ nạp vào cơ sở dữ liệu hàng trăm triệu đến hàng chục triệu bản ghi dữ liệu thực tế sát với thực tiễn, sau đó cùng tôi tinh chỉnh từng bước một. Từ đó, bạn sẽ học được phương pháp thực chiến để tối ưu hóa các câu truy vấn vốn tốn hàng giây xuống mức cực hạn chỉ trong 0,01 giây.


<Nội dung khóa học>

Trong quá trình phát triển, có những truy vấn vốn hoạt động tốt bỗng nhiên chậm hẳn đi khi dữ liệu ngày càng nhiều.

Ban đầu, câu truy vấn chỉ mất 0.1 giây để thực thi, nhưng rồi có lúc thời gian thực thi vượt quá 1 giây, 10 giây, thậm chí trong trường hợp nghiêm trọng còn dẫn đến sự cố dịch vụ.

Trong tình huống này, chúng ta sẽ phải đối mặt với những băn khoăn như sau.

  • Chúng ta nên bắt đầu tìm nguyên nhân khiến truy vấn chậm từ đâu?

  • Những mục xuất hiện trong kế hoạch thực thi có ý nghĩa gì?

  • Đã tạo chỉ mục rồi mà sao không được sử dụng nhỉ?

  • Nên thiết kế chỉ mục phức hợp theo thứ tự nào?

  • Phải chăng càng nhiều chỉ mục thì hiệu suất càng cao?

  • Tại sao Using filesort lại xảy ra và làm thế nào để loại bỏ nó?

  • Tại sao truy vấn lại chậm dần khi phân trang về các trang sau?

  • Thứ tự join do ai quyết định và làm thế nào để tối ưu hóa?

  • Tại sao trình tối ưu hóa lại chọn kế hoạch thực thi khác với dự kiến?

Vấn đề hiệu năng cơ sở dữ liệu không thể giải quyết chỉ bằng việc nắm vững cú pháp SQL.

Chúng ta cần hiểu rõ cách cơ sở dữ liệu lưu trữ dữ liệu, cách duyệt chỉ mục, và các tiêu chí mà bộ tối ưu hóa sử dụng để lựa chọn kế hoạch thực thi.

Khóa học này không sửa các truy vấn chậm bằng cảm tính, mà hướng dẫn cách tìm nguyên nhân và khắc phục dựa trên kế hoạch thực thi và kết quả đo lường thực tế.

Trước tiên, hãy tìm hiểu cấu trúc nội bộ của MySQL và InnoDB, đồng thời phân tích cách truy vấn thực sự được thực thi thông qua EXPLAIN và EXPLAIN ANALYZE.

Sau đó, sử dụng hàng triệu bản ghi dữ liệu thực tế để trực tiếp tạo ra và giải quyết các vấn đề về hiệu suất.

  • Tối ưu hóa quét toàn bộ bảng thành quét chỉ mục

  • Xác định thứ tự cột trong chỉ mục phức hợp

  • Hiểu về B+Tree và cơ chế hoạt động nội bộ của chỉ mục

  • Phân tích chỉ mục phân cụm và chỉ mục thứ cấp

  • Chẩn đoán nguyên nhân Using filesort và kết thúc sớm

  • Cải thiện hiệu suất với ICP và chỉ mục bao phủ

  • Quét bỏ qua chỉ mục, hợp nhất chỉ mục, phân tích MRR

  • Ứng dụng trình tối ưu hóa và histogram

  • Tối ưu hóa thứ tự Join và truy cập ngẫu nhiên

  • Cải thiện hiệu suất sắp xếp, phân trang và phân nhóm

  • Tổng hợp luồng và thiết kế bảng tổng hợp trước

Không chỉ đơn thuần đưa ra kết luận kiểu "Hãy thêm chỉ mục vào đây".

Chúng ta sẽ kiểm tra từng bước lý do vì sao cần chỉ mục đó, những gì diễn ra bên trong cơ sở dữ liệu, cũng như kế hoạch thực thi và thời gian thực thi thực tế thay đổi như thế nào.

Hơn nữa, không chỉ dừng lại ở việc tối ưu tốc độ cho một câu truy vấn duy nhất, khóa học còn đi sâu vào những nguyên lý nền tảng, giúp bạn liên tục phân tích và giải quyết các vấn đề hiệu suất phát sinh trong thực tế.


<Những điều bạn sẽ đạt được qua khóa học này>

1. Khả năng đọc kế hoạch thực thi

Hiểu rõ các thành phần cốt lõi của EXPLAIN và EXPLAIN ANALYZE, đồng thời có thể xác định nguyên nhân gây ra các truy vấn chậm thông qua kế hoạch thực thi.

2. Khả năng tự thiết kế chỉ mục

Không chỉ dừng lại ở mức thêm một chỉ mục vào một cột duy nhất, bạn có thể thiết kế các chỉ mục kết hợp phù hợp với phân bố dữ liệu và điều kiện truy vấn.

3. Hiểu rõ cơ chế hoạt động bên trong cơ sở dữ liệu

Bạn sẽ nắm vững các nguyên lý cốt lõi bên trong chỉ mục như B+Tree, chỉ mục cụm, chỉ mục phụ, truy cập ngẫu nhiên, v.v.

4. Trải nghiệm tối ưu hóa hiệu suất thực chiến

Sử dụng hàng triệu bản ghi dữ liệu để trực tiếp phân tích các truy vấn chậm và trải nghiệm quá trình cải thiện hiệu suất lên gấp hàng chục đến hàng trăm lần.

5. Tiêu chí giải quyết vấn đề trong môi trường vận hành

Không chỉ những ưu điểm của chỉ mục, mà còn cân nhắc đến hiệu suất ghi, dung lượng lưu trữ và chi phí vận hành, bạn có thể lựa chọn giải pháp tối ưu nhất phù hợp với từng tình huống cụ thể.


<Toàn bộ mục lục khóa học>

  1. Giới thiệu khóa học và tài liệu học tập

  2. Thiết lập môi trường thực hành

  3. Hiệu năng cơ sở dữ liệu và Kiến trúc MySQL

  4. Kế hoạch thực thi 1 - Làm chủ hoàn toàn EXPLAIN

  5. Kế hoạch thực thi 2 - Chinh phục hoàn toàn ANALYZE

  6. Tối ưu hóa thực chiến 1 - Chẩn đoán quét toàn bảng và cơ bản về chỉ mục phức hợp

  7. Cấu trúc nội bộ chỉ mục 1 - B+Tree

  8. Cấu trúc nội bộ chỉ mục 2 - Chỉ mục cụm, chỉ mục phụ

  9. Tinh chỉnh thực chiến 2 - Chẩn đoán Using filesort và Kết thúc sớm

  10. Chuyên sâu về chỉ mục 1 - ICP, Covering, Skip Scan

  11. Chuyên sâu về chỉ mục 2 - Merge, MRR, tính năng mới, hint, vận hành

  12. Trình tối ưu hóa và Histogram

  13. Tối ưu hóa Join

  14. Thực chiến tinh chỉnh 3 - Chẩn đoán truy cập ngẫu nhiên khi Join và chỉ mục bao phủ

  15. Tối ưu hóa sắp xếp, phân trang và nhóm

  16. Thực chiến tối ưu 4 - Tổng hợp luồng và bảng tổng hợp trước

  17. Tiếp theo,

Tối ưu hóa hiệu năng cơ sở dữ liệu không đơn thuần là việc học thuộc lòng một vài kỹ thuật tinh chỉnh SQL.

Đây là quá trình hiểu rõ lộ trình truy vấn dữ liệu, xác định điểm nghẽn dựa trên kế hoạch thực thi, và lựa chọn giải pháp tối ưu nhất trong số các phương án.

Thông qua khóa học này, tôi hy vọng các bạn sẽ trưởng thành trở thành những lập trình viên có thể tự mình phân tích chính xác nguyên nhân và giải quyết vấn đề khi đối mặt với các truy vấn chậm, thay vì vội vàng thêm chỉ mục một cách mơ hồ.

Tôi đã đưa vào bài giảng này toàn bộ kinh nghiệm tích lũy được qua quá trình giải quyết vô số vấn đề về hiệu suất trong thực tế, cùng với kết quả của những trăn trở và suy ngẫm suốt thời gian dài.

Hy vọng điều này sẽ giúp ích cho sự phát triển của các bạn.

Xin cảm ơn.

Bình luận