Inflearn brand logo image
Inflearn brand logo image
Programming

/

Back-end

Hiệu suất cao JPA & Hibernate (High-Performance Java Persistence)

Ứng dụng persistence Java của bạn là một ứng dụng enterprise hiệu năng cao, được xây dựng tốt, hay chỉ là đoạn mã chậm chạp chạy èo uột? Sự khác biệt này chỉ cách nhau một bước chân. Hãy nghiên cứu JPA, Hibernate một cách bài bản và cùng xây dựng các ứng dụng hiệu năng cao!

(4.2) 29 đánh giá

584 học viên

Java
JPA
hibernate

Dịch cái này sang tiếng Việt

  • Học cách phân tích và giải quyết các vấn đề hiệu suất của JDBC, JPA, Hibernate trong môi trường thực tế.

  • JPA와 Hibernate의 내부구조를 이해하고 성능 저하의 근본 원인을 정확히 분석하는 방법을 배웁니다.

  • Vượt mức độ dùng API, bạn có thể phát triển khả năng thiết kế truy cập dữ liệu để kiểm soát luồng thực thi truy vấn và cơ chế thay đổi trạng thái.

Vlad-Banner (đã chỉnh sửa)

Học hỏi từ các chuyên gia toàn cầu
Chiến lược ứng dụng Java hiệu suất cao

Bạn có thực sự đang sử dụng JPA đúng cách không?

Hầu hết các điểm nghẽn về hiệu suất đều bắt đầu từ những gì chúng ta nghĩ mình biết.

" Ngay khi bạn hiểu được nội dung bên trong Hibernate , thiết kế thực tế của bạn sẽ thay đổi ."

Cơ bản về thiết kế hiệu suất Hiểu biết với Hibernate

Nhiều nhà phát triển Java sử dụng JPA để xử lý dữ liệu, nhưng khi sự cố hiệu suất xảy ra trong thực tế, không dễ để xác định chính xác nguyên nhân. Có nhiều trường hợp mà việc xem nhật ký không cung cấp cho bạn bất kỳ manh mối nào và việc sửa mã cũng không cải thiện được vấn đề. Điều này là do chúng ta chỉ xem xét mã hiển thị mà không hiểu đúng cách hoạt động bên trong của Hibernate, vốn là nền tảng của JPA.

Thực sự thì điều gì đang diễn ra bên trong JPA ? Nghĩa là, khi nào các kết nối được mở, các truy vấn được thực thi vào thời điểm nào và xử lý hàng loạt, lưu trữ đệm và khóa ảnh hưởng đến hiệu suất như thế nào? Hiểu được quy trình làm việc của Hibernate sẽ giúp bạn trả lời những câu hỏi này.

Được nhiều chuyên gia Java khuyên dùng
Kinh thánh tối ưu hóa hiệu suất

Lời khen ngợi từ các nhà vô địch Java trên toàn thế giới
Đánh giá trên Amazon là 4,7
️ Bài giảng trực tiếp từ tác giả bán chạy nhất!

Rafael Winterhalter
(Người sáng lập Byte Buddy
Nhà vô địch Java)

Lukas Eder
(Người sáng lập JOOQ
Nhà vô địch Java)

Markus Eisele
(Nhà truyền bá công nghệ Red Hat
Nhà vô địch Java)

Cho dù bạn sử dụng JDBC trực tiếp hay thông qua JPA hoặc Hibernate, thì cũng không có bản tóm tắt nào tốt hơn về tác động của hiệu suất.

Cuốn sách này là tài liệu phải đọc đối với bất kỳ nhà phát triển nào muốn đẩy hiệu suất của cơ sở dữ liệu quan hệ lên mức tối đa với các ứng dụng Java.

Vlad đã chắt lọc kinh nghiệm sâu rộng của mình thành một cuốn sách dễ đọc mà bất kỳ ai làm việc với JPA hoặc Hibernate đều phải đọc.

Bài giảng "JPA hiệu suất cao và Hibernate"

Một khóa học tối ưu hóa JPA hiếm hoi tập trung vào các vấn đề về hiệu suất

Hầu hết các hướng dẫn về JPA tập trung vào thiết kế thực thể hoặc viết API. Tuy nhiên, khóa học này tập trung vào việc giải quyết các vấn đề tắc nghẽn hiệu suất thường xuyên xảy ra trong thực tế . Công cụ này chẩn đoán các vấn đề phức tạp như ngoại lệ tải chậm không mong muốn, bùng nổ truy vấn và vô hiệu hóa bộ nhớ đệm từ nguyên nhân gốc rễ thông qua cấu trúc bên trong của Hibernate và đưa ra các tiêu chí thiết kế xem xét hiệu suất dựa trên các thành phần cốt lõi như xả, nhóm kết nối và luồng tạo câu lệnh.

Tư duy ngủ đông thay đổi thiết kế thực tế

Hibernate có thể thực hiện các truy vấn vào những thời điểm chúng ta không mong muốn hoặc kích hoạt hàng chục truy vấn chỉ bằng cách thiết lập một liên kết duy nhất. Bài giảng này phân tích một cách có cấu trúc các cơ chế bên trong kích hoạt sự xuất hiện của truy vấn, chẳng hạn như kiểm tra bẩn, thời gian thực hiện và xử lý mối quan hệ. Điều này sẽ giúp sinh viên dự đoán được luồng thực hiện và phát triển các tiêu chí đánh giá thiết kế có thể duy trì hiệu suất trong những điều kiện thay đổi .

Hiểu luồng thực thi Hibernate ' trực quan '

Cơ chế hoạt động bên trong của Hibernate rất phức tạp và trừu tượng để có thể hiểu chỉ qua mã lệnh. Bài giảng này giải thích trực quan quy trình từ việc tạo kết nối đến kế hoạch thực thi, ứng dụng bộ đệm và xử lý khóa bằng sơ đồ từng bước . Nó được cấu trúc để bạn có thể hiểu trực quan cấu trúc thực thi phức tạp theo thứ tự thực thi và luồng điều kiện, và thông qua bài giảng, bạn có thể phát triển khiếu thẩm mỹ thiết kế cho phép bạn nhìn thấy toàn bộ cấu trúc của Hibernate chỉ trong nháy mắt .

Nội dung học tập

Khóa học này cung cấp nền tảng để xử lý JPA phức tạp hơn bằng cách hiểu cách thức hoạt động bên trong của Hibernate, bao gồm luồng thực hiện truy vấn và sử dụng tài nguyên.

Vòng đời kết nối và Chiến lược kiểm soát nhóm

Tình trạng tắc nghẽn tài nguyên có thể xảy ra khi các kết nối được tạo và đóng cho mỗi yêu cầu hoặc khi chúng hoạt động khác với mong đợi. Trong bài giảng này, bạn sẽ tìm hiểu cách Hibernate hoạt động với nhóm kết nối và cách sử dụng nhà cung cấp kết nối và số liệu thống kê để theo dõi luồng tài nguyên và tình trạng tắc nghẽn.

Chiến lược và tối ưu hóa nhận dạng

Cách tạo ra mã định danh có tác động trực tiếp đến khả năng mở rộng và hiệu suất ban đầu của hệ thống. Chúng ta sẽ khám phá cách thiết kế liên kết và kế thừa, cùng với các chiến lược tối ưu hóa của Hibernate, ảnh hưởng đến khối lượng và độ phức tạp của truy vấn. Bạn cũng sẽ tìm hiểu các tiêu chí để ngăn ngừa tình trạng tắc nghẽn hiệu suất do thiết kế kém.

Kiểm soát thời gian thực hiện truy vấn

Điểm xả của Hibernate xảy ra trong phạm vi điều kiện rộng hơn dự kiến ​​và có thể gây ra các truy vấn không cần thiết. Trong bài giảng này, bạn sẽ học cách kiểm soát chính xác thời gian thực hiện truy vấn thông qua các cơ chế nội bộ như hàng đợi hành động, kiểm tra bẩn và cải tiến mã byte.

Luồng thực thi câu lệnh và tối ưu hóa truy vấn

Nếu một Câu lệnh không được tạo lại cho mỗi yêu cầu hoặc kế hoạch thực hiện không được tái chế, tải DB có thể tăng đáng kể. Phân tích luồng tạo câu lệnh và lưu trữ đệm của Hibernate, cấu trúc tối ưu hóa kế hoạch thực thi và tìm hiểu các chiến lược để cải thiện hiệu quả thực thi truy vấn.

Các chiến lược ảnh hưởng đến xử lý hàng loạt và hiệu suất truy vấn

Hibernate có sự khác biệt đáng kể về hiệu suất tùy thuộc vào chiến lược khi xử lý hàng loạt hoặc truy xuất các thực thể liên kết. Bạn sẽ tìm hiểu về xử lý hàng loạt, tìm nạp, phép chiếu DTO, phân cấp bộ đệm, v.v. theo quy trình thực tế và học cách kiểm soát ổn định số lượng truy vấn và tốc độ xử lý ngay cả khi lượng dữ liệu lớn.

Giao dịch và chiến lược khóa để kiểm soát đồng thời

Khi các vấn đề đồng thời xảy ra trong môi trường đa luồng, việc sử dụng giao dịch hoặc khóa không đúng cách có thể dẫn đến lỗi toàn vẹn dữ liệu. Tìm hiểu về cấu trúc xử lý giao dịch của Hibernate, các chiến lược khóa bi quan/lạc quan và cung cấp các tiêu chí ứng dụng thực tế.

Tài liệu học tập

  • Cung cấp 46 và 1025 trang tài liệu trình bày PDF.

  • Toàn bộ mã nguồn đều có sẵn trong kho lưu trữ GitHub , nơi bạn sẽ tự thiết lập trong suốt khóa học và sử dụng làm môi trường học tập cho JPA hoặc Hibernate.

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

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

  • Những người đang sử dụng JPA, Hibernate, v.v. nhưng muốn khai thác các công nghệ này tốt hơn

  • JPA, Hibernate, v.v. nhưng muốn phân tích cấu trúc bên trong và nâng cao hiểu biết căn bản

  • Những ai muốn học cách giải quyết vấn đề hiệu năng ở lớp Truy cập Dữ liệu Java trong thực tế.

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

  • Ngôn ngữ Java

  • Kiến thức cơ bản về cơ sở dữ liệu quan hệ

  • JPA

Xin chào
Đây là

1,081

Học viên

45

Đánh giá

4.4

Xếp hạng

2

Các khóa học

My name is Vlad Mihalcea, and I’m a Java Champion. I wrote the High-Performance Java Persistence book, which became one of the best-selling Java books on Amazon.

 

I'm currently developing the amazing Hypersistence Optimizer, and in my free time, I develop various open-source projects (e.g., Hypersistence Utils and FlexyPool) and answer questions on StackOverflow.

 

저는 Java 챔피언이자 Hibernate ORM 프로젝트의 주요 기여자입니다. Hypersistence Optimizer 도구를 만들었으며, 이 도구는 애플리케이션 구성과 매핑을 스캔하여 데이터 액세스 계층 속도를 향상시키는 데에 필요한 변경 사항을 알려주는 도구입니다.

StackOverflow에서 Hibernate, Java, JPA 태그에 관련된 수천 개의 질문에 답변하며 골드 배지를 획득했습니다.

흥미로운 것을 발견하면 개인 블로그에 공유하는 것을 좋아합니다. 그는 오픈 소스 소프트웨어를 신뢰하며, 모든 개발자가 어떤 방식으로든 참여해야 한다고 생각합니다.

적절한 도구를 찾지 못하면 Hypersistence UtilsFlexyPool과 같은 새로운 오픈 소스 프로젝트를 시작하기도 합니다.

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

Tất cả

50 bài giảng ∙ (10giờ 42phú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á

Tất cả

29 đánh giá

4.2

29 đánh giá

  • 화를참자님의 프로필 이미지
    화를참자

    Đánh giá 6

    Đánh giá trung bình 5.0

    5

    6% đã tham gia

    블라드님 강의가 있다는 건도 알고 있었지만, 영어가 안돼서 망설이다 말았었습니다. 블라드님이 언제 한국어를 배운건지 모르겠지만, 한국어로 지식을 공유해주셔서 감사합니다... 밀도 높게 잘 짜여진 것 같습니다. 나머지도 잘 학습해보겠습니다

    • Vlad Mihalcea
      Giảng viên

      Thanks to Inflearn, the course is now available in Korean as well.

  • 장우정님의 프로필 이미지
    장우정

    Đánh giá 6

    Đánh giá trung bình 5.0

    5

    98% đã tham gia

    잘 정돈된 강의. JPA와 하이버네이트의 쿼리에 대해 일목요연하게 설명합니다. 어떻게 성능을 테스트하는지, 그에 따라 어떤 방식으로 구현하는게 나은지 잘 정리해줍니다. 중구난방으로 흩어져있던 지식을 깔끔하게 정리해서 묶어주는 느낌이었어요

    • Vlad Mihalcea
      Giảng viên

      I'm glad you liked the course structure.

  • asdf님의 프로필 이미지
    asdf

    Đánh giá 10

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    50% đã tham gia

    자세한 개념 그리고 실습을 통해 익힐 수 있어 좋았습니다! 특히 다양한 DBMS에 따른 차이점과 적용 방법을 잘 설명해 주십니다.

    • Vlad Mihalcea
      Giảng viên

      감사합니다. 계속 지켜봐 주세요.

  • hahahl님의 프로필 이미지
    hahahl

    Đánh giá 43

    Đánh giá trung bình 5.0

    5

    10% đã tham gia

    SQL에서 이어서 JPA강의도 수강하는데 역시 의심할 필요도 없는 강의 퀄이네요!

  • 모깅님의 프로필 이미지
    모깅

    Đánh giá 23

    Đánh giá trung bình 5.0

    5

    22% đã tham gia

    진짜 깊게 설명해주십니다. 남은 강의도 잘 먹겠습니다!

    • Vlad Mihalcea
      Giảng viên

      I'm happy you found my explanations clear and thank you for taking this course.

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

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!