MySQL learned from a Toss developer who processes over 500 billion pieces of financial data
Learn how to design and handle large-scale data architectures that process hundreds of billions of records using only pure SQL and core MySQL features, alongside a Toss developer who handles hundreds of billions of financial traffic transactions and a developer who started as a non-major and is now developing platforms in Pangyo.
I really enjoyed the lecture. While listening to it, I thought about parts that other people might find helpful as reference, so let me organize the areas where I found it beneficial.
Advantages:
1. It's really realistic. When covering topics, the instructor directly mentions if certain forms aren't commonly used in practice, often saying "I'm covering this because it's good to know, even though it's not frequently used." I think this shows that a truly skilled developer is making an effort to share both realistic and less practical aspects.
2. The content itself is really valuable. From general and simple CRUD operations to explanations of various architectural perspectives possible with MySQL - it's not just content limited to databases, but contains rich material about development itself.
3. These seem like topics you can't hear anywhere else. Most MySQL or database lectures are limited to how to write queries and what functions are available, but this lecture uses procedures and explains well the essential topics of how databases should be used.
However, honestly, I think this lecture has some disadvantages as much as it has advantages.
1. The difficulty level doesn't seem easy. Beginners in development might find it difficult to follow due to lack of basic knowledge.
2. The explanations aren't that rich and Kind. While covering really diverse topics, the explanations aren't proportionally detailed. To put it simply, it feels somewhat like having a mentor who's really good at development, but from the mentor's perspective, some things are so obvious that they just skip over them.
Conclusion: But even excluding all these points, I think it's a really good lecture. If you actually have the will to study and want to learn many aspects, this lecture would be suitable. Conversely, if you're fine with learning just the basics and want to be spoon-fed, this lecture probably won't be of much help. From my perspective, it was a really satisfying lecture because I could learn not only about MySQL but also think about its applications and study from an architectural perspective. I was so impressed that I'm leaving a comment like this for the first time.
5.0
미래 1인 개발자
79% enrolled
I'm a server developer working at Toss who participated most deeply in this MySQL course. Hong previously prepared and created a Kafka-related course together with Choi, and since that topic was really good and I also wanted to share my knowledge in a deeper way, I decided to participate like this.
- Of course, I had participated indirectly or directly before, but I was more immersed and engaged in this course.
Actually, I don't think simply covering MySQL content alone would have that great of a learning effect for you all. Currently, with AI advancement, AI actually writes queries better than we do.
What you need to know here is "what aspects you can consider" and "what methods are available." I think the ability lies in knowing these aspects and knowing how to instruct AI accordingly. I hope this course will be very helpful to you all from that perspective.
Please show lots of interest. Thank you!!
5.0
lsls ks
83% enrolled
I think this is a great topic for gaining truly deep knowledge about MySQL. It covers some basic CRUD operations and focuses only on queries that are realistically used, which makes it even more helpful. However, the more important part seems to be the design patterns at the end. It was a great help in gaining the perspective to see the forest. Thank you.
What you will gain after the course
MySQL Horizontal Scaling Techniques Using Sharding and Partitioning
Is sharding always the right approach? Knowledge regarding that fundamental question.
Traffic distribution strategies and load balancing using replication, and the resulting methods for ensuring HA.
Concurrency control using Transaction & Lock and MVCC for ensuring performance
MySQL API for mastering only the CRUD operations actually used in real-world practice.
Advanced optimization techniques for SELECT queries, which account for 90% of traffic.
Index analysis and query analysis through query pre-planning
Database structure design principles for scalable system design
MYSQL · SCALE & SYSTEM DESIGN
There is a limit to how much you can endure with query tuning
We apply indexes, analyze execution plans, and fix queries. We do that much. However, once the data exceeds hundreds of millions of records, the speed at which it accumulates surpasses the margin of improvement possible through tuning. From that point on, you must change the structure, not just the query.
Pure SQL
Mock data provided
Replication · Sharding
Section Quizzes
Unlimited access period
500 billion+
The scale of financial data handled by Toss developers. I have directly incorporated the decision-making criteria used in that environment.
1,624lines
Practical SQL and theoretical syntax included in the lecture. Mock data generation queries are also provided.
90%
The realistic proportion of traffic handled by SELECT. We spend the most time on this in Section 4.
No additional languages will be used. We will proceed purely with SQL syntax, and move on to scaling and system design in the final two sections.
01Limitations
Problems solved with queries and problems solved with structures
Even if it is the same "slow" issue, the area to address differs depending on the cause. This lecture covers the right-hand column below.
Symptom
Scope solved by queries
Scope of solving through structure
A specific query is slow
Add index, check execution plan
—
Read traffic is surging
Absorb some of the load with a cache
Distribute reads with Replication
A table has become too large
reaching the limit
Split with Partitioning
It won't all fit in a single unit.
Unsolvable
Distribute with Sharding
Old data consumes costs
Impossible to solve
Compression and Archiving
"Don't just try to solve it with simple queries like SELECT; if you know how to utilize the database, you can solve it in different ways." This lecture started from that sentence.
02Start
This is an actual conversation that took place.
A single question I asked an acquaintance who works as a developer at Toss became the basis for this lecture.
HHong hyung, when Toss uses MySQL, there must be hundreds of billions or even trillions of rows of data, so how do you handle all of that?
TToss DeveloperWho are you?
HHongNo, seriously. There must be a limit to SELECT optimization and physical storage, so I'm worried about how to handle these issues as the service grows.
TToss DeveloperInstead of trying to solve it simply with query statements like SELECT, you solve it in other ways if you know how to utilize the database. Since physical limits are clear.
HHongTell me about this this time. Let's create it together by combining what I already know.
03Scaling
Four ways to use when one unit is not enough
Section 6 goes here. We will compare side-by-side what each one solves and what it sacrifices.
01
Replication
Replicate the same data across multiple machines to distribute the read load. Writes are still handled in one place.
02
Partitioning
Divide a single table into pieces. While the search range is reduced, the criteria for partitioning must be carefully established.
03
Sharding
Distribute data across multiple databases. In the lecture, we also pose the question, "Is it always right?"
04
Compression · Archiving
Reduce or move accumulating data. This is necessary at the point where cost becomes an issue.
In Section 5, we will first look at the internal architecture, storage engine, memory, and transactions/locks. You need to understand the internals before looking at scaling to understand why those constraints arise.
04Curriculum
What is covered and in what order
It starts with checking environmental metrics, moves through design and CRUD, and concludes with internal architecture, scaling, and system design.
01
Lecture Introduction
Course Introduction
Mock Data Generation Procedure for Personal Testing - 1
Mock data generation procedure for personal testing - 2
Section 1 Quiz
02
Checking DB environment metrics via SQL queries
A Sneak Peek at MySQL Global Configurations
Access Management Using MySQL
Representative Performance Metrics of MySQL and a Taste of Explain
Section 2 Quiz
03
Data Design for Practical Server Development
Database Design for Server Developers
Database Design Patterns for Practical Application
Partitioning strategies for table distribution and index optimization design techniques
SELECT optimization, which realistically accounts for 90% of traffic
Advanced SELECT techniques for complex service data
UPDATE & DELETE Complete Guide
Section 4 Quiz
05
A Peek Inside MySQL
MySQL's Internal Architecture and Storage Engines
The core of MySQL!! Memory, transaction, and lock mechanisms
06
MySQL's Horizontal Scaling System
MySQL's Scaling Systems [ Replication & Distribution ]
MySQL's Scaling Systems [ Partitioning & Sharding ]
Data accumulates and costs increase: data compression and archiving
Section 6 Quiz
07
System design methods at the operational level
Streaming data processing techniques for real-time fluctuating data processing
Ultra-large-scale batch processing for handling hundreds of billions of data points
Design patterns for real-time data synchronization
How to utilize MySQL as a job queue for robust asynchronous tasks
Modern system architecture combining MySQL and NoSQL
Section 7 Quiz
The final section is about design, not queries. It covers everything from streaming processing and ultra-large-scale batches to synchronization patterns, task queues, and NoSQL integration.
The final section is the center of gravity for this lecture.
This is the stage that comes after learning all about queries. It treats the database not just as a storage unit, but as a component of the system.
Streaming data processing
Ultra-large-scale batch
Real-time synchronization patterns
MySQL Job Queue
Combining MySQL + NoSQL
Explain Analysis
Index Optimization
Partitioning Strategy
Among the course reviews, there is a story that says, "I was asked in a 3-year experience interview how to synchronize MySQL and NoSQL, and all the solutions are right here." That content is in this section.
06Course Reviews
Stories from those who took the course first
I copied this directly from the Inflearn course reviews.
I went into an interview for a 3rd-year developer position, and a question came up about how to synchronize MySQL and NoSQL. The detailed solution is all right here. I regret not watching this sooner.
kr-zua · Written after 58% completion
He directly mentions when certain forms are rarely used in practice, yet he still covers things that are good to know. I think it's clear that he put a lot of effort into teaching both the practical and theoretical aspects by distinguishing between them.
Amy · Written after 88% completion
It is even more helpful because it covers some simple CRUD operations and focuses only on queries used in real-world scenarios. The design patterns at the end seem to be the most important part. It was a great help in gaining a "big picture" perspective.
lsls ks · Written after 83% completion
07Target Audience
Who is this course for?
I have only used CRUD
Junior back-end developers who are only writing basic queries and saves at work
Feeling the limits of tuning
Working developers who have looked into indexes and execution plans but don't know what to do next
Facing an expansion
Those who don't know whether to choose replication, partitioning, or sharding as data continues to accumulate.
Interview Preparation
Those who want to organize their thoughts to be able to answer questions about database scaling and synchronization.
08Current Market
Stories about AI replacing developers
New recruitment is decreasing, and companies are trying to hire only those who are proven. These are articles that have come out in recent months.
2025Krafton, which achieved record-breaking performance, has begun downsizing its workforce. The reason given was its transition into an 'AI-first' company.
2025Software specialist companies are halting the recruitment of new developers. There are also projections that the hiring of entry-level developers will plummet by 77%.
202553% of game designers answered, "AI will replace my job." Cases of recommended resignation have also been reported.
As companies become more anxious, those being hired must demonstrate a clearer distinction. There are many who know how to write queries, but few who know how to choose the right architecture.
09Created by
Led by a developer who handles financial data
TOSS · BACKEND ENGINEER
Toss Developer
After working at Naver, I am now developing backends at Toss. I was most deeply involved in this course, and I have directly incorporated the decision-making criteria derived from the actual scale of data I handle.
"Physical limits are clear. If you just keep clinging to queries in front of them, you won't find an answer."
Knowledge Sharer · Pangyo Platform Server Developer
Hong
I started as a non-major and am now developing platform backends in Pangyo. I make it a principle to create lectures together with colleagues currently working in the field.
"If you know in advance where bottlenecks occur as a service grows, you gain options."
10Questions
MySQL Course Frequently Asked Questions
Q. Do I need other languages or frameworks?
⌄
It is not necessary. We will proceed using pure SQL syntax without any additional languages. Section 1 includes a procedure for creating mock data for practice, so you can simply populate the data and execute the queries covered in the lecture as they are.
Q.Isn't it too difficult for beginners?
⌄
There is a separate section covering CRUD, where we look at CREATE, SELECT, UPDATE, and DELETE one by one. However, the focus of this course is on the subsequent scaling and system design. If your goal is to learn basic syntax step-by-step, it would be better to take the courses in a different order.
Q.Is sharding absolutely necessary?
⌄
No. In the lecture, I separately pose the question, "Is sharding always the right approach?" The purpose of Section 6 is to distinguish whether a problem can be solved with replication, partitioning, or if it truly requires sharding.
Q.Do I need to know the internal workings as well?
⌄
Section 5 covers the internal architecture, storage engine, memory, and transaction/lock mechanisms. You need to understand the internals to explain why expansion strategies have certain constraints. That is why it is placed right before the expansion section.
Q.Is this helpful for interviews?
⌄
The topics in the final section often appear directly as interview questions. In the course reviews, there is a comment saying, "I was asked in a 3rd-year level interview how to synchronize MySQL and NoSQL, and the detailed solution is right here."
It holds the card after the query
Once you understand the point where tuning is no longer effective, you can then decide what to bring out next.
There is a dedicated space to discuss everything from parts you get stuck on while taking the lecture, questions that arise while applying it to your own service, to career stories. The places where you get stuck are usually where others get stuck as well.
I started studying development after becoming interested in it while idling at home, and I am currently responsible for platform server development in Pangyo. I am continuing my activities as a knowledge sharer because I want to provide you with the methods I used to study, as well as the various problems and solutions you may encounter in practice.
These lectures are not created solely through my own knowledge. There are others who collaborate on every lecture.
I'm a server developer working at Toss who participated most deeply in this MySQL course. Hong previously prepared and created a Kafka-related course together with Choi, and since that topic was really good and I also wanted to share my knowledge in a deeper way, I decided to participate like this.
- Of course, I had participated indirectly or directly before, but I was more immersed and engaged in this course.
Actually, I don't think simply covering MySQL content alone would have that great of a learning effect for you all. Currently, with AI advancement, AI actually writes queries better than we do.
What you need to know here is "what aspects you can consider" and "what methods are available." I think the ability lies in knowing these aspects and knowing how to instruct AI accordingly. I hope this course will be very helpful to you all from that perspective.
Please show lots of interest. Thank you!!
Thank you for creating another great course that can have a positive impact!! I hope the parts we worried about and thought through will reach the students. Please take good care of us next time too!!
Hello young pyo lee, thank you for your evaluation and feedback!!
I think that in modern times, it's not just about simple database usage that's important. I believe what matters is whether you can do something derived through that database.
From this perspective, I filmed the lecture and wanted to share a very broad range of perspectives with you all.
As a result, it seems like there ended up being quite a lot of abstract concepts. Next time, I will work even harder to provide you with a more satisfying lecture. Thank you for taking the time to leave this review!!
Hmm... I got excited on my own because of the title and thought there would be practical examples, and I wanted to see some real-world work on handling large volumes with MySQL.
But there's no such content.
In the latter part, it seemed like they were going to cover large-scale data handling, but it ended with explaining one syntax and saying things like "there's actually no need to introduce it to this extent" and "MySQL is sufficient in many cases," which was disappointing.
I wanted to know what cases MySQL is sufficient for, when you feel MySQL's limitations in real work, etc.
It's disappointing.
Since there's a lot of content within the time limit, the depth is somewhat shallow, so it seems like content that beginners or those who want to study MySQL can listen to comfortably and without burden, rather than for working professionals.
Hello Mr. Hwang Yong-hak, thank you so much for taking the time to leave a review. Actually, I had many concerns while preparing this course. I thought about what parts I should teach you, what concepts would be more effective in practice, and selected these topics after much consideration!!
I think that the process of writing general queries doesn't really provide much help. Using UNION well, applying WHERE conditions really well - I thought these topics don't fit well with current trends. Because now AI uses them better than me and other senior developers, analyzes better, and teaches better.
So while I do cover general queries, rather than focusing on that part, I thought it would be right to show you what you can utilize and apply while using this MySQL database.
Based on this content, I thought I could help improve your work performance by asking questions to AI later.
So because this course contains a lot of this perspective, unfortunately it seems like it wasn't the course you wanted, Mr. Hwang Yong-hak. Still, I will work hard to provide better courses in the future and show you a better version of myself. Thank you so much for taking the course!!!
Hello digitcom, thank you for your feedback!! Since I need to cover various topics and there are many ways to write MySQL queries but I thought the competitiveness was lacking, I wanted to inform you about the overall architecture.
Also, I wanted to provide some direction and perspective for studying, so I offered this topic. It seems like I wasn't able to give you better satisfaction, digitcom 😭😭 I will work harder to receive better reviews in the future.
Thank you.