강의

멘토링

로드맵

Java ORM Standard JPA Programming - Basics

For those who are new to JPA or who use JPA in practice but lack basic theory, By learning the basic theory of JPA solidly, even beginners can confidently use JPA in practice.

(5.0) 2,133 reviews

25,418 learners

Level Basic

Course period Unlimited

Java
Java
JPA
JPA
Java
Java
JPA
JPA

Kim Young-han's Practical Database Performance Optimization Course Now Open

Hello, everyone.

Young-han Kim's Practical Database Performance Optimization course has finally launched.

To celebrate the launch, we are offering a 30% discount on the Database Roadmap 🙂

Title: Kim Young-han's Practical Database - Performance Optimization, Complete Mastery of Execution Plans and Indexes

Number of lectures: 104

Course duration: 21 hours 10 minutes

Link: https://inf.run/Gcg6N


And to celebrate the completion of all lectures in the Backend Roadmap, including the Database Roadmap, we are introducing Kim Young-han's Backend Master Pass for a limited time only.

Master Pass Link: https://inf.run/uixFt


<Course Features>

The most important feature of this lecture is that we will load real-world data ranging from millions to tens of millions of records into the database and tune it step by step together. Through this, you will learn practical methods to optimize queries that previously took several seconds down to the extreme of 0.01 seconds.


<Course Content>

During development, queries that run smoothly can suddenly slow down as data accumulates.

A query that initially executes in just 0.1 seconds can suddenly take over 1 second or 10 seconds, and in severe cases, it may lead to a service outage.

In such situations, we find ourselves asking the following questions.

  • Where should we start looking for the cause of slow queries?

  • What do the numerous items in the execution plan mean?

  • I created an index, but why isn't it being used?

  • In what order should composite indexes be designed?

  • Does having more indexes improve performance?

  • Why does filesort occur, and how should it be eliminated?

  • Why do queries slow down as you paginate further back?

  • Who determines the join order, and how can it be optimized?

  • Why does the optimizer choose an execution plan different from our expectations?

Database performance issues cannot be solved simply by knowing SQL syntax well.

You need to understand how the database stores data, how it traverses indexes, and the criteria the optimizer uses to select an execution plan.

Rather than fixing slow queries by guesswork, this course covers how to identify the root cause and resolve it based on the execution plan and actual measurement results.

First, you will learn the internal architecture of MySQL and InnoDB and analyze how queries are actually executed using EXPLAIN and EXPLAIN ANALYZE.

After that, we will directly create and resolve performance issues using millions of rows of real-world data.

  • Optimizing Full Table Scans into Index Scans

  • Determining the Column Order of a Composite Index

  • Understanding B+Tree and Internal Index Operations

  • Analysis of Clustered and Secondary Indexes

  • Diagnosing the Cause of Using filesort and Early Termination

  • Performance Improvement Using ICP and Covering Indexes

  • Index Skip Scan, Index Merge, MRR Analysis

  • Leveraging the Optimizer and Histograms

  • Join Order and Random Access Optimization

  • Sorting, Paging, and Grouping Performance Optimization

  • Streaming Aggregation and Pre-aggregation Table Design

We don't just give you the conclusion and say, "Add an index here."

We examine step by step why that index is necessary, what happens inside the database, and how the execution plan and actual execution time differ.

Furthermore, it goes beyond merely optimizing a single query, delving deeply into the fundamental principles that empower you to continuously analyze and resolve new performance issues in real-world scenarios.


<What You Will Gain from This Course>

1. Ability to read execution plans

Understand the key metrics of EXPLAIN and EXPLAIN ANALYZE, and identify the root causes of slow queries within the execution plan.

2. The ability to design indexes directly

Beyond simply adding an index to a single column, you will be able to design composite indexes tailored to data distribution and query conditions.

3. Understanding Database Internals

You will understand the core principles of index internals, including B+Trees, clustered indexes, secondary indexes, and random access.

4. Real-World Performance Optimization Experience

You will analyze slow queries firsthand using millions of records and experience the process of optimizing them to achieve performance improvements of tens to hundreds of times.

5. Criteria for Resolving Issues in the Production Environment

You can choose the optimal approach for any given situation by considering not only the benefits of indexes, but also write performance, storage space, and operational costs.


<Full Curriculum>

  1. Course Introduction and Materials

  2. Lab Environment Setup

  3. Database Performance and MySQL Architecture

  4. Execution Plan 1 - Mastering EXPLAIN

  5. Execution Plan 2 - Mastering ANALYZE

  6. Practical Tuning 1 - Full Table Scan Diagnosis and Composite Index Basics

  7. Index Internal Structure 1 - B+Tree

  8. Index Internal Structure 2 - Clustered, Secondary Indexes

  9. Practical Tuning 2 - Diagnosing Using filesort and Early Termination

  10. Advanced Indexing 1 - ICP, Covering, Skip Scan

  11. Advanced Indexes 2 - Merge, MRR, New Features, Hints, Operations

  12. Optimizer and Histogram

  13. Join Optimization

  14. Practical Tuning 3 - Diagnosing Join Random Access and Covering Indexes

  15. Sorting, Paging, and Grouping Optimization

  16. Practical Tuning 4 - Streaming Aggregation and Pre-aggregated Tables

  17. Next,

Database performance optimization is not simply a matter of memorizing a few SQL tuning techniques.

It is a process of understanding the data retrieval path, identifying bottlenecks based on execution plans, and determining the most appropriate solution among various options.

Through this course, I hope you grow into a developer who can accurately analyze the root cause and resolve issues independently, rather than blindly adding indexes when encountering slow queries.

In this lecture, I have distilled the experience I've gained from resolving countless performance issues in real-world settings, along with the insights from years of careful consideration.

I hope this has been helpful for your growth.

Thank you.

Comment