강의

멘토링

커뮤니티

BEST
Programming

/

Back-end

SQL hiệu năng cao (High-Performance SQL) dành cho nhà phát triển JPA (ORM)

Tận dụng tối đa hệ thống cơ sở dữ liệu quan hệ!

(4.9) 31 đánh giá

557 học viên

  • Vlad Mihalcea
SQL
performance-tuning
sql-query
DBMS/RDBMS

Đánh giá từ những học viên đầu tiên

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

  • Học hỏi bí quyết điều chỉnh và tối ưu hóa hiệu suất SQL từ chuyên gia hàng đầu thế giới trong lĩnh vực Hibernate và JPA.

  • Tìm hiểu cách viết SQL hiệu quả, có tính đến sự tương tác hiệu quả giữa ứng dụng backend và cơ sở dữ liệu.

  • Để xác định chiến lược SQL nào có thể tối ưu hóa hiệu suất trong môi trường ORM (Object-Relational Mapping) như JOIN, Subquery, CTE (Common Table Expressions), Window Function, cần đưa ra các tiêu chí đánh giá sau:

  • So sánh các chiến lược truy vấn cải thiện hiệu suất trong các RDBMS hàng đầu như Oracle, SQL Server, MySQL, PostgreSQL, v.v., đồng thời chỉ rõ các tình huống hoạt động hiệu quả hoặc không hiệu quả trong từng cơ sở dữ liệu.

  • Bạn có thể học cách tận dụng các kỹ thuật truy vấn nâng cao như Upsert, Merge trong nhiều môi trường RDBMS khác nhau, tập trung vào các trường hợp thực tế.

  • Nắm vững các chủ đề SQL mới nhất như các vấn đề về mức độ cô lập giao dịch, chiến lược khóa, xử lý dữ liệu JSON, chiến lược lập chỉ mục nâng cao, v.v. để nâng cao khả năng tối đa hóa hiệu suất ứng dụng.

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

Học hỏi từ các chuyên gia toàn cầu
Chiến lược điều chỉnh SQL hiệu suất cao

SQL mà bạn đang viết có thực sự được tối ưu hóa không?

Hiệu suất DB được xác định bởi 'thiết kế truy vấn', không phải tối ưu hóa mã.

" Ngay khi bạn hiểu được bản chất của truy vấn , cơ sở dữ liệu của bạn sẽ thay đổi ."

Nhiều nhà phát triển quen thuộc với việc viết SQL và triển khai logic, nhưng điều thực sự quyết định hiệu suất cơ sở dữ liệu là cách viết các truy vấn.

Các truy vấn trả về kết quả giống hệt nhau có thể có sự khác biệt về hiệu suất gấp hàng chục lần tùy thuộc vào thứ tự nối, vị trí của các truy vấn phụ và cách sử dụng chỉ mục.
Tuy nhiên, nếu bạn không đọc kế hoạch thực thi và chỉ sử dụng SQL do ORM tạo ra hoặc chỉ lặp lại các mẫu quen thuộc, thì nút thắt sẽ luôn bị "ẩn sâu" và gây gánh nặng cho hoạt động.

Mặc dù không phải mọi nhà phát triển ứng dụng đều cần có hiểu biết về SQL ở cấp độ DBA, nhưng có một số kỹ thuật hiệu suất SQL cốt lõi không bao giờ được bỏ qua khi phát triển ứng dụng.

Nhiều nhà phát triển chỉ quen thuộc với ORM hoặc ngược lại, chỉ quen thuộc với SQL, nhưng hiếm khi hiểu và sử dụng hai ngôn ngữ này một cách hiệu quả.
Bài giảng này sẽ giúp bạn xem ORM và SQL không phải là những công nghệ riêng biệt mà là những công cụ có thể tạo ra sự tương tác với nhau .

SQL không chỉ là ngôn ngữ truy vấn dữ liệu; nó còn là công cụ để đưa ra quyết định về cơ sở dữ liệu và hiệu suất.
Khi bạn hiểu được bản chất của truy vấn, việc cải thiện hiệu suất sẽ trở thành quyết định về thiết kế, chứ không phải là vấn đề trực giác.

Được thiết kế cho hiệu suất
Suy nghĩ về SQL

Nếu bạn tham gia khóa học "SQL hiệu suất cao",

SQL thực tế thiết kế các cấu trúc chiến lược , không chỉ liệt kê các hàm.

Chìa khóa cho ứng dụng thực tế không nằm ở từng hàm JOIN, truy vấn con, CTE và hàm cửa sổ riêng lẻ, mà nằm ở cách kết hợp chúng và thời điểm lựa chọn . Khóa học này không chỉ đơn thuần là liệt kê các hàm. Nó rèn luyện kỹ năng tư duy thực tế, so sánh các chiến lược khác nhau dựa trên cấu trúc dữ liệu và yêu cầu, đồng thời thiết kế cấu trúc truy vấn tối ưu .

Một phương pháp học "trực tiếp thu thập" hiệu suất truy vấn.

Khóa học này không chỉ đơn thuần là học ngữ pháp. Nó được thiết kế để giúp bạn thực hiện các truy vấn thực tế, so sánh thời gian phản hồi và tích lũy kinh nghiệm thực tế bằng cách xác định các điểm nghẽn và cải thiện cấu trúc từng dòng . Tập trung vào các nguyên tắc thiết kế SQL có thể áp dụng trên nhiều môi trường khác nhau như PostgreSQL, MySQL và Oracle, khóa học này cho phép bạn nắm vững các khái niệm cốt lõi về tối ưu hóa hiệu suất mà không cần dựa vào các công cụ cụ thể.

Từ giao dịch đến JSON, nâng cao kỹ năng của bạn với SQL nâng cao

Từ các hàm cửa sổ và mức độ cô lập giao dịch đến khóa lạc quan và bi quan và xử lý JSON—chúng tôi sẽ trình bày một cách có hệ thống các chủ đề nâng cao thường gặp trong thực tế nhưng khó nắm vững. Khóa học này sẽ giúp bạn vượt ra ngoài các kỹ năng viết truy vấn đơn giản.
Bạn sẽ có được các kỹ năng SQL thực tế bao gồm hiệu suất, tính đồng thời và thiết kế dữ liệu .

Nội dung học tập

Nhiều phương pháp JOIN và chiến lược tối ưu hóa hiệu suất

So sánh các phương thức nối SQL khác nhau, bao gồm INNER, OUTER, NATURAL và LATERAL JOIN, đồng thời phân tích tiêu chí lựa chọn và sự khác biệt về hiệu suất dựa trên tình huống. Tìm hiểu quy trình tối ưu hóa truy vấn tập trung vào kế hoạch thực thi và phát triển khả năng xác định điểm nghẽn hiệu suất thực sự xảy ra ở đâu.

Cấu trúc truy vấn bằng cách sử dụng các truy vấn phụ và các bảng được suy ra

So sánh ưu và nhược điểm của JOIN và truy vấn con, đồng thời hiểu rõ cơ chế hoạt động bên trong của các biểu thức truy vấn con khác nhau, chẳng hạn như EXISTS, IN và ANY/ALL. Bạn cũng sẽ thực hành tái cấu trúc cấu trúc các truy vấn phức tạp bằng cách sử dụng các bảng dẫn xuất và biểu thức bảng chung (CTE), đảm bảo cả khả năng đọc và hiệu suất.

Truy vấn đệ quy và xử lý dữ liệu phân cấp

Tìm hiểu cách xử lý dữ liệu phân cấp hiệu quả, chẳng hạn như cấu trúc cây hoặc biểu đồ tổ chức, bằng cách sử dụng CTE đệ quy. Chúng tôi sẽ đề cập đến phương pháp thực hiện và các cân nhắc về hiệu suất của truy vấn đệ quy, đồng thời tìm hiểu các kỹ năng SQL cần thiết để triển khai logic kinh doanh thực tế.

Xây dựng các truy vấn phân tích phức tạp với các hàm cửa sổ

Triển khai logic phân tích phức tạp như tổng hợp, sắp xếp và xếp hạng bằng SQL thông qua các hàm cửa sổ như ROW_NUMBER, RANK, DENSE_RANK và LAG/LEAD. Hiểu được cách thức hoạt động bên trong của khung Windows và PARTITION BY, đồng thời thực hành các kỹ thuật nâng cao để tổng hợp dữ liệu mà không làm giảm hiệu suất.

Kỹ thuật sử dụng SQL thường được sử dụng trong thực tế

Tìm hiểu cách xử lý lệnh chèn và cập nhật đồng thời bằng các câu lệnh Upsert và Merge, đồng thời tìm hiểu các kỹ thuật để chuyển đổi linh hoạt hình dạng dữ liệu bằng Pivot/Unpivot. Bạn cũng sẽ hiểu rõ hơn về thứ tự thực thi SQL, tìm hiểu cách thức hoạt động của nhiều phương pháp phân trang khác nhau và hiểu rõ hơn về luồng truy vấn.

SQL nâng cao, bao gồm giao dịch và xử lý JSON

Tìm hiểu các kỹ thuật kiểm soát đồng thời dựa trên thuộc tính ACID và mức độ cô lập giao dịch, đồng thời so sánh các chiến lược khóa bi quan/lạc quan. Chúng tôi cũng đề cập đến cách xử lý các kiểu dữ liệu JSON trong SQL, mở rộng khả năng của SQL để hỗ trợ các mô hình dữ liệu hiện đại.

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

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

  • Dành cho những ai sử dụng ORM nhưng vẫn khao khát cải thiện hiệu suất

  • Những người khao khát có kinh nghiệm cải thiện hiệu suất SQL vì DBA phụ trách việc điều chỉnh SQL.

  • Những người sử dụng SQL nhưng cảm thấy thiếu các phương pháp cải thiện hiệu suất hoặc tiêu chí lựa chọn chiến lược

  • Những ai muốn trau dồi khả năng giải quyết các vấn đề truy vấn phức tạp thường gặp trong thực tế công việc

  • Dành cho các nhà phát triển muốn học một cách có hệ thống các chủ đề SQL nâng cao như JOIN, CTE, Transaction, JSON, v.v.

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

  • Hướng dẫn sử dụng cơ bản JAVA, Spring Framework

  • Khả năng viết SQL cơ bản

  • Kinh nghiệm sử dụng cơ sở dữ liệu quan hệ

Xin chào
Đây là

1,195

Học viên

71

Đánh giá

4.5

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ả

79 bài giảng ∙ (7giờ 37phú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ả

31 đánh giá

4.9

31 đánh giá

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

    Đánh giá 27

    Đánh giá trung bình 5.0

    5

    34% đã tham gia

    아주 자세하게 설명해주셔서 탑 개발자는 어떤식으로 생각하고 개발하는지 배울 수 있었습니다. 남은 강의도 꼭꼭 씹어먹겠습니다!

    • Vlad Mihalcea
      Giảng viên

      Thank you for your review. I'm happy you found the course useful.

  • hahahl님의 프로필 이미지
    hahahl

    Đánh giá 52

    Đánh giá trung bình 5.0

    5

    9% đã tham gia

    사고의 흐름을 배울 수 있는 방법이 도움이 많이 됩니다. 영어로 듣고 복습은 시간을 절약하기 위해 2배속 한국어로 듣는데 전혀 어색함이 없네요

    • Vlad Mihalcea
      Giảng viên

      I'm glad you liked it. My course was recorded in English, but the Inflearn platform managed to provide the dubbing and subtitiles in Korean.

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

    Đánh giá 6

    Đánh giá trung bình 5.0

    5

    8% đã tham gia

    블라드님 강의가 있다는 건도 알고 있었지만, 영어가 안돼서 망설이다 말았었습니다. 블라드님이 언제 한국어를 배운건지 모르겠지만, 한국어로 지식을 공유해주셔서 감사합니다... 강의 슬라이드 너무 좋네요. 블라드님이 전달하고싶은 부분을 바로바로 파악할 수 있었습니다. 나머지도 잘 학습해보겠습니다

    • Vlad Mihalcea
      Giảng viên

      Thank you for appreciating my course. I'm glad you enjoyed it.

  • 알고리즘가즈앙님의 프로필 이미지
    알고리즘가즈앙

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    6% đã tham gia

    진짜 블로그로만 보다가 이번에 강의나왓다해서 바로 신청햇어여!! 좋은강의 너무 감사하고 한국어로 설명해주셔서 부담감없이 듣고잇어요~~~

    • Vlad Mihalcea
      Giảng viên

      Thank you for such a quick enrolment and enjoy the video lessons.

  • asdf님의 프로필 이미지
    asdf

    Đánh giá 11

    Đánh giá trung bình 5.0

    5

    37% đã tham gia

    다양한 상황에서 어떤 전략을 적용하는 것이 좋은지 잘 설명해 주십니다. SQL 역량을 키우는 데 도움이 많이 될 것 같습니다.

4.772.015 ₫

Khóa học khác của Vlad Mihalcea

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!