강의

챌린지

멘토링

로드맵

커뮤니티

Học MySQL từ một nhà phát triển Toss, người xử lý hơn 500 tỷ dữ liệu tài chính

Cùng với một nhà phát triển của Toss, người xử lý hàng trăm tỷ giao dịch tài chính, và một nhà phát triển bắt đầu từ lĩnh vực không chuyên nhưng hiện đang phát triển nền tảng tại Pangyo, bạn sẽ học cách thiết kế và xử lý kiến trúc dữ liệu quy mô lớn có khả năng xử lý hàng trăm tỷ dữ liệu chỉ bằng SQL thuần túy và các chức năng cốt lõi của MySQL.

(4.7) 52 đánh giá

839 học viên

Độ khó Nhập môn

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

MySQL
MySQL
Jetbrains
Jetbrains
mysql-query
mysql-query
MySQL
MySQL
Jetbrains
Jetbrains
mysql-query
mysql-query

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

4.7

5.0

bht9011

63% đã tham gia

Có vẻ như khóa học này đã gói gọn nhiều nội dung đa dạng về MySQL một cách rất súc tích. Có những phần tôi từng đọc trong cuốn sách Real MySQL mà chưa hiểu rõ hoàn toàn, nhưng sau một thời gian, khi xem bài giảng này tôi đã hiểu ra được. Trong các khóa học nhập môn thường ít khi hướng dẫn cách quản lý dữ liệu lớn, nhưng khóa học này đã đưa ra hướng dẫn về cách giải quyết việc mở rộng database, giúp tôi có cái nhìn rộng mở hơn. Tôi rất tiến cử khóa học này!

5.0

에이미

88% đã tham gia

Tôi đã nghe bài giảng rất hay. Trong khi nghe bài giảng, tôi muốn tổng hợp lại những phần mà các bạn khác cũng nên tham khảo, đây là những phần đã giúp ích cho tôi. Ưu điểm 1. Thực sự rất thực tế. Thầy thường xuyên đề cập trực tiếp rằng nếu những dạng thực tế mà thầy đang xử lý không được sử dụng nhiều thì sẽ không sử dụng, nhưng thầy nói rằng nên biết để tham khảo nên mới đề cập đến. Vì vậy tôi nghĩ có thể thấy rằng một developer thực sự giỏi đang cố gắng chia sẻ cả phần thực tế và không thực tế để dạy cho mọi người. 2. Tôi nghĩ nội dung thực sự rất bổ ích. Từ CRUD đơn giản và phổ biến đến các giải thích về quan điểm kiến trúc đa dạng có thể thực hiện thông qua MySQL, tôi nghĩ không chỉ đơn thuần là nội dung giới hạn trong DB mà còn chứa đựng nội dung phong phú về bản thân việc phát triển. 3. Có vẻ như là những chủ đề chưa từng nghe ở đâu khác. Hầu hết các bài giảng về MySQL hoặc DB chỉ giới hạn trong việc viết query như thế nào, có những function gì, nhưng bài giảng này thầy cũng sử dụng procedure và giải thích rất tốt về chủ đề bản chất là nên sử dụng DB như thế nào. Nhưng tôi nghĩ đây cũng là bài giảng có những nhược điểm nhất định bên cạnh những ưu điểm. 1. Độ khó có vẻ không dễ lắm. Có lẽ những bạn mới bắt đầu phát triển sẽ khó nghe vì thiếu kiến thức cơ bản. 2. Lời giải thích không phong phú và Kind đến thế. Thầy giải thích về nhiều chủ đề đa dạng, nhưng ngược lại lời giải thích không phong phú lắm. Nói dễ hiểu thì có cảm giác như người mentor rất giỏi phát triển nhưng từ góc độ mentor thì đây là điều đương nhiên nên chỉ lướt qua. Kết luận: Nhưng loại trừ tất cả những điều này thì có vẻ như đây thực sự là một bài giảng rất tốt. Thực tế nếu bản thân có ý chí học hỏi và muốn học nhiều phần thì bài giảng này có vẻ phù hợp. Ngược lại, nếu chỉ học cơ bản cũng không sao và muốn được "cho ăn sẵn" thì bài giảng này có vẻ sẽ không giúp ích nhiều. Từ góc độ của tôi, đây là bài giảng thực sự hài lòng ở chỗ không chỉ MySQL mà còn phải suy nghĩ về ứng dụng của nó, và có thể học từ góc độ kiến trúc. Tôi ấn tượng quá nên lần đầu viết bài như thế này.

5.0

미래 1인 개발자

79% đã tham gia

Tôi là một server developer đang phát triển tại Toss, công ty tham gia sâu nhất vào khóa học MySQL này. Hong trước đây đã cùng với Choi chuẩn bị và tạo ra khóa học về Kafka, và vì chủ đề đó rất hay cũng như tôi muốn chia sẻ kiến thức của mình một cách sâu sắc hơn nên đã quyết định tham gia như thế này. - Tất nhiên tôi đã tham gia gián tiếp hoặc trực tiếp trước đây, nhưng khóa học này tôi đã tham gia với sự tập trung nhiều hơn. Thực ra tôi không nghĩ rằng việc chỉ đơn thuần học về nội dung MySQL sẽ mang lại hiệu quả học tập tốt cho các bạn. Hiện tại với sự phát triển của AI, thực tế AI viết query tốt hơn chúng ta. Điều các bạn cần biết ở đây là "những phần nào cần xem xét", "có những cách thức nào" v.v. Tôi nghĩ khả năng là biết những phần đó và biết cách yêu cầu AI làm. Tôi hy vọng khóa học này sẽ giúp ích rất nhiều cho các bạn từ góc độ đó. Mong các bạn quan tâm nhiều. Cảm ơn các bạn!!

Bạn sẽ nhận được điều này sau khi học.

  • Kỹ thuật mở rộng theo chiều ngang MySQL bằng Sharding và Partitioning

  • Sharding liệu có thực sự luôn là lựa chọn đúng đắn?? Kiến thức về câu hỏi mang tính bản chất đó

  • Chiến lược phân bổ lưu lượng và cân bằng tải sử dụng Replication, cùng phương thức đảm bảo HA tương ứng.

  • MVCC để kiểm soát tính đồng thời và đảm bảo hiệu năng bằng cách sử dụng Transcation & Lock

  • API MySQL tập trung vào và nắm vững các thao tác CRUD thực sự được sử dụng trong thực tế công việc.

  • Các kỹ thuật nâng cao cho SELECT đảm nhiệm 90% lưu lượng truy cập

  • Phân tích chỉ mục và phân tích truy vấn thông qua kế hoạch truy vấn được định trước

  • Nguyên tắc thiết kế cấu trúc cơ sở dữ liệu cho việc thiết kế hệ thống có khả năng mở rộng

Nhà phát triển Toss xử lý hơn 500 tỷ dữ liệu tài chính sử dụng MySQL như thế nào?? 🤔

❗Nội dung này là cuộc trò chuyện có thật.❗

😄 Hong: Nhưng mà anh này, dạo gần đây em có điều muốn hỏi. Ở Toss, khi sử dụng MySQL, chắc là có hàng trăm tỷ bản ghi, hoặc dữ liệu lên đến vài nghìn tỷ, vậy họ xử lý tất cả những thứ đó như thế nào??

😁Toss: Ai vậy?

😄 Hong: Không, thật sự dạo này tôi cứ băn khoăn về chuyện đó. Chắc hẳn việc chỉ đơn giản tối ưu SELECT cũng có giới hạn, mà lưu trữ vật lý cũng sẽ có giới hạn... Tôi đang suy nghĩ xem nên giải quyết những vấn đề này như thế nào khi dịch vụ phát triển đây;;

😁 Toss: Đừng cố giải quyết chỉ bằng những câu lệnh truy vấn như SELECT, mà nếu biết cách tận dụng cơ sở dữ liệu thì hãy giải quyết theo một cách khác thôi, vì giới hạn về mặt vật lý vốn đã rõ ràng rồi

😁 Toss: Nhưng mà bạn là ai vậy??

😄 Hong: ㅡㅡ Đừng đùa nữa... Lần này hãy nói cho tôi biết về vấn đề này, tôi cũng sẽ kết hợp những gì mình biết để cùng làm nhé.

Đừng chỉ cố gắng giải quyết bằng các câu truy vấn như SELECT, mà nếu hiểu cách có thể tận dụng cơ sở dữ liệu thì cần giải quyết theo một phương thức khác, vì giới hạn về mặt vật lý là rõ ràng

Điều này có ý nghĩa gì?? 🤷 Và phải giải quyết như thế nào?? Câu trả lời nằm ở việc vượt qua SELECT và JOIN mà chúng ta vốn đã biết, hiểu rõ và sử dụng phù hợp mysql-query, đồng thời thiết kế kiến trúc để xử lý MySQL trong những tình huống khắc nghiệt nhất. Ngoài việc chỉ đơn thuần tối ưu, khóa học còn công khai toàn bộ nguyên lý cốt lõi của replication, phân vùng và sharding để đáp ứng lưu lượng truy cập lớn, cùng với những bí quyết của các nhà phát triển Toss và tôi.


Đây không phải là một khóa học nhàm chán chỉ liệt kê lý thuyết, mà là một hướng dẫn thực tiễn giúp bạn hoàn toàn làm chủ các tính năng cốt lõi của MySQL thông qua việc cùng viết các truy vấn thực tế và theo dõi quá trình chúng hoạt động. 🚀

Đặc điểm của khóa học này ⚡

📌 Khóa học được triển khai hoàn toàn bằng SQL thuần

* Không sử dụng thêm ngôn ngữ nào khác. Khóa học chỉ sử dụng thuần cú pháp SQL và tập trung vào MySQL.

📌 Nội dung và các truy vấn SQL thực tế được cấu thành từ hơn 1500 dòng cú pháp

* Đây là bài giảng gồm khoảng 1624 dòng, bao gồm nhiều truy vấn khác nhau, các truy vấn SQL để tạo dữ liệu mô phỏng và những phần lý thuyết liên quan đến nội dung bài giảng!

📌 Nhiều cách sử dụng MySQL khác nhau mà bạn khó có cơ hội tiếp cận trong môi trường thực tế

* Các truy vấn dưới dạng procedure có xấu không?? Nói rằng chúng hoàn toàn xấu là cách diễn đạt không đúng. Nội dung đề cập đến các procedure có thể được sử dụng dựa trên cấu trúc bảng thực tế.

📌 Cung cấp cú pháp truy vấn SQL để tạo dữ liệu mẫu

* Việc chỉ đơn giản gửi truy vấn với lượng dữ liệu nhỏ là không hiệu quả. Chúng tôi sẽ cung cấp một số truy vấn để tạo nhiều dữ liệu giả đa dạng, giúp các bạn sau này có thể tự học thêm nhiều hơn.

📌 Con đường tắt từ Junior lên Senior..! Thiết kế hệ thống

* Việc chỉ đơn giản tối ưu các query đã viết có những giới hạn rõ ràng. Bạn có thể học cách thiết kế hệ thống tùy theo mục đích của lưu lượng truy cập.

* Bằng cách nắm vững các kiến trúc đa dạng có thể xây dựng khi sử dụng Database, bạn có thể phát triển năng lực thiết kế kiến trúc hệ thống.

Khóa học này phù hợp với những ai ⚡

Lập trình viên backend

Tôi muốn xử lý dữ liệu lớn.

Người đang chuẩn bị xin việc

Tìm việc khó quá.

Kỹ sư cơ sở dữ liệu cấp junior

Thực ra tôi chỉ biết CRUD...

Trong khóa học này, chúng ta sẽ tìm hiểu những nội dung sau. ⚡

* Các biến cấu hình đa dạng của MySQL

* Kỹ thuật quản lý kết nối MySQL để bảo mật trong thực tế

* Mẫu thiết kế cơ sở dữ liệu dành cho nhà phát triển máy chủ

* Kỹ thuật xử lý để phân tán dữ liệu [ Phân vùng & tối ưu hóa chỉ mục ]

* Kỹ thuật mô hình hóa dữ liệu

* Các mẫu tối ưu hóa cho CRUD

* Kiến trúc nội bộ và hệ thống lưu trữ MySQL

* Quản lý bộ nhớ, giao dịch và cơ chế khóa

* Hệ thống mở rộng của MySQL [nhân bản và phân tán, phân vùng và sharding]

* Nén và lưu trữ dữ liệu

* Thực chiến! Mô hình hóa dữ liệu để xây dựng dịch vụ

Tại sao phải học MySQL?? 🤔

Mục tiêu của chúng tôi phần lớn là tìm việc và chuyển việc. Trong điều kiện này, thực ra mọi chuyện rất đơn giản. Bởi vì MySQL là cơ sở dữ liệu tiêu biểu được các doanh nghiệp sử dụng.

Người tạo ra khóa học này 🤭

  • Bắt đầu từ một người không chuyên ngành, hiện là lập trình viên đang làm việc tại Pangyo với vai trò nhà phát triển backend nền tảng

  • Mục tiêu của tôi là chia sẻ các phương pháp và tư duy phát triển thực tế, đồng thời là người chia sẻ kiến thức tạo khóa học cùng những người quen tài giỏi xung quanh thay vì một mình.

  • Nhờ hoạt động tích cực, người chia sẻ kiến thức từng thực hiện phỏng vấn tại Inflearn

Những người đã tham gia khóa học này 🤭

  • Lập trình viên máy chủ từng học chuyên ngành khoa học máy tính ở tỉnh lẻ, làm việc phát triển phần mềm tại Naver và hiện đang phát triển backend tại Toss

  • Lập trình viên luôn thiếu thời gian nên thường bị Hong mắng nhiều...

  • Là một nhà phát triển mong muốn đạt được tự do tài chính và mơ ước trở thành nhà phát triển độc lập.

Khóa học giúp hiệu quả học tập tăng gấp 10 lần khi xem cùng nhau

Hướng dẫn toàn diện về Kafka, giải thích dễ hiểu và chuyên sâu nhất [Bởi người không chuyên ngành & nhà phát triển Kakao]

  • Khi sử dụng Database, tôi sẽ hướng dẫn tất cả về việc có thể triển khai kiến trúc nào bằng cách tận dụng MSQ — công nghệ tiêu biểu nhất thường được sử dụng kết hợp — để hiện thực hóa hình thức liên kết lỏng lẻo giữa các dịch vụ!!

Thông tin cần tham khảo trước khi tham gia khóa học

  • IDE :

    JetBrains IntelliJ

  • MySQL:

    9.2.0 cho macOS 15.2 trên arm64 (Homebrew)

Chúng tôi đang vận hành một phòng trò chuyện mở để giúp các bạn chuẩn bị cho sự nghiệp của mình. Rất mong nhận được sự quan tâm của các bạn!

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

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

  • Lập trình viên backend có 1–3 năm kinh nghiệm cảm thấy CRUD thôi là chưa đủ.

  • Nhà phát triển từng trải qua tình trạng hiệu suất dịch vụ suy giảm do các truy vấn chậm

  • Dành cho những ai muốn thử thách bản thân với việc thiết kế hệ thống có khả năng mở rộng để xử lý lưu lượng truy cập lớn.

  • Lập trình viên backend muốn trao đổi chuyên sâu với DBA và kỹ sư dữ liệu

  • Dành cho những ai muốn phát triển năng lực giải quyết vấn đề trong thực tế công việc, chứ không chỉ học SQL lý thuyết.

  • Kỹ sư muốn làm việc với các hệ thống coi trọng tính ổn định và hiệu năng như dữ liệu tài chính

Xin chào
Đây là Hong

Xác minh Inflearn

Xác minh sự nghiệp

10,235

Học viên

609

Đánh giá

175

Trả lời

4.8

Xếp hạng

30

Các khóa học

Tôi bắt đầu học lập trình sau một thời gian dài lười biếng ở nhà và cảm thấy hứng thú với nó, hiện tại tôi đang đảm nhận việc phát triển máy chủ nền tảng (platform server) tại Pangyo. Tôi tiếp tục hoạt động với tư cách là người chia sẻ kiến thức vì muốn cung cấp cho các bạn phương pháp tôi đã học cũng như những vấn đề và giải pháp khác nhau mà các bạn có thể gặp phải trong thực tế.

 

Bài giảng không chỉ được tạo ra từ kiến thức của riêng tôi. Mọi bài giảng đều có sự đồng hành của những người cộng sự.

 

[Kinh nghiệm của người chia sẻ kiến thức]

[Cựu] Nhà phát triển blockchain liên quan đến Sandbox IP

[Cựu] Nhà phát triển Backend Metaverse

[Hiện tại] Nhà phát triển server đang làm việc lâu năm tại Pangyo

 

[Lịch sử phỏng vấn]

[Yêu cầu khác]

[Trang web chính thức]

Thêm

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

Tất cả

24 bài giảng ∙ (4giờ 41phú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ả

52 đánh giá

4.7

52 đánh giá

  • tttos님의 프로필 이미지
    tttos

    Đánh giá 8

    ∙

    Đánh giá trung bình 5.0

    5

    79% đã tham gia

    Tôi là một server developer đang phát triển tại Toss, công ty tham gia sâu nhất vào khóa học MySQL này. Hong trước đây đã cùng với Choi chuẩn bị và tạo ra khóa học về Kafka, và vì chủ đề đó rất hay cũng như tôi muốn chia sẻ kiến thức của mình một cách sâu sắc hơn nên đã quyết định tham gia như thế này. - Tất nhiên tôi đã tham gia gián tiếp hoặc trực tiếp trước đây, nhưng khóa học này tôi đã tham gia với sự tập trung nhiều hơn. Thực ra tôi không nghĩ rằng việc chỉ đơn thuần học về nội dung MySQL sẽ mang lại hiệu quả học tập tốt cho các bạn. Hiện tại với sự phát triển của AI, thực tế AI viết query tốt hơn chúng ta. Điều các bạn cần biết ở đây là "những phần nào cần xem xét", "có những cách thức nào" v.v. Tôi nghĩ khả năng là biết những phần đó và biết cách yêu cầu AI làm. Tôi hy vọng khóa học này sẽ giúp ích rất nhiều cho các bạn từ góc độ đó. Mong các bạn quan tâm nhiều. Cảm ơn các bạn!!

    • jhong
      Giảng viên

      Lần này cũng cảm ơn bạn đã cùng tạo ra khóa học tốt có thể mang lại ảnh hưởng tích cực!! Hy vọng những phần chúng tôi đã suy nghĩ và cân nhắc sẽ đến được với những người học. Lần sau cũng nhờ bạn nhiều!!

  • goryp017165님의 프로필 이미지
    goryp017165

    Đánh giá 13

    ∙

    Đánh giá trung bình 4.8

    5

    100% đã tham gia

    Quá trừu tượng và phạm vi quá rộng rồi. Mong bạn có thể nói chuyện giới hạn trong phạm vi database thôi, đang nói quá nhiều thứ khác nhau rồi.

    • jhong
      Giảng viên

      Xin chào young pyo lee, cảm ơn bạn đã đánh giá và góp ý!! Tôi nghĩ rằng trong thời đại hiện tại, việc sử dụng db đơn giản không phải là điều quan trọng. Tôi cho rằng điều quan trọng là liệu có thể làm được những gì phát sinh từ db đó hay không. Từ quan điểm này, tôi đã quay khóa học và muốn chia sẻ rộng rãi quan điểm của mọi người với các bạn. Vì vậy mà có vẻ như các khái niệm trừu tượng đã trở nên khá nhiều. Lần sau tôi sẽ cố gắng chăm chỉ hơn nữa để có thể cung cấp cho các bạn khóa học có độ hài lòng cao hơn. Cảm ơn bạn đã dành thời gian để lại đánh giá như vậy!!

  • yonghyng님의 프로필 이미지
    yonghyng

    Đánh giá 16

    ∙

    Đánh giá trung bình 4.9

    3

    100% đã tham gia

    Tôi nghĩ sẽ được tìm hiểu sâu về câu truy vấn nhưng không phải như vậy nên hơi tiếc. Dù vậy cảm ơn bài giảng hay.

    • jhong
      Giảng viên

      Xin chào anh Hwang Yong-hak, cảm ơn anh đã dành thời gian và để lại đánh giá. Thực ra trong quá trình chuẩn bị khóa học này, tôi đã có rất nhiều suy nghĩ. Tôi đã cân nhắc về những phần nào cần truyền đạt, khái niệm nào sẽ hiệu quả hơn trong thực tế công việc và đã chọn chủ đề này!! Tôi nghĩ rằng việc viết các truy vấn thông thường thực sự không mang lại nhiều giúp ích. Việc sử dụng UNION thành thạo, áp dụng điều kiện WHERE thật tốt, những nội dung như vậy tôi nghĩ không phù hợp với xu hướng thời đại hiện tại. Bởi vì giờ đây AI sử dụng tốt hơn tôi và cả những senior developer khác, phân tích tốt hơn và hướng dẫn tốt hơn. Vì vậy mặc dù cũng đề cập đến các truy vấn thông thường, nhưng thay vì tập trung vào phần này, tôi nghĩ đúng hơn là nên cho các bạn biết những phần nào có thể ứng dụng và áp dụng khi sử dụng cơ sở dữ liệu MySQL này. Tôi nghĩ rằng dựa trên nội dung này, sau này có thể đặt câu hỏi cho AI để nâng cao hiệu suất công việc của các bạn. Vì vậy do khóa học này có nhiều quan điểm như vậy nên có lẽ không phải là khóa học mà anh Hwang Yong-hak mong muốn. Dù vậy, tôi sẽ cố gắng cung cấp những khóa học tốt hơn và cho thấy hình ảnh tốt đẹp hơn trong tương lai. Cảm ơn anh rất nhiều vì đã học khóa học này!!!

  • ghwlsrnt1230881님의 프로필 이미지
    ghwlsrnt1230881

    Đánh giá 1

    ∙

    Đánh giá trung bình 4.0

    4

    88% đã tham gia

    Hmm... vì tiêu đề nên tôi đã tự kỳ vọng và nghĩ rằng sẽ có các ví dụ thực tế, tôi muốn xem một số thực tế xử lý dung lượng lớn bằng mysql Nhưng không có nội dung như vậy. Phần cuối có vẻ như sẽ đề cập đến dung lượng lớn nhưng chỉ giải thích một cú pháp rồi kết thúc bằng "thực ra không cần thiết phải đưa vào đến mức này", "có nhiều trường hợp mysql là đủ" v.v. nên tiếc quá. Tôi muốn biết trường hợp nào mysql là đủ, trong thực tế khi nào cảm nhận được giới hạn của mysql v.v. Tiếc quá. Vì có nhiều nội dung trong thời gian giới hạn nên độ sâu hơi nông, có vẻ như đây là nội dung dành cho người mới hoặc những ai muốn học mysql một cách thoải mái không gánh nặng hơn là cho người làm thực tế.

    • digitcomgisul님의 프로필 이미지
      digitcomgisul

      Đánh giá 28

      ∙

      Đánh giá trung bình 3.9

      2

      100% đã tham gia

      Học qua loa

      • jhong
        Giảng viên

        Xin chào digitcom, cảm ơn bạn đã gửi phản hồi!! Có lẽ vì phải đề cập đến nhiều chủ đề khác nhau, và mặc dù có nhiều cách khác nhau để viết query cho MySQL nhưng tôi nghĩ tính cạnh tranh còn kém nên muốn chia sẻ với bạn về kiến trúc tổng thể. Ngoài ra, tôi muốn chia sẻ với bạn về định hướng và quan điểm trong việc học tập ở một mức độ nhất định nên đã cung cấp chủ đề này. Có lẽ tôi chưa mang lại sự hài lòng tốt hơn cho digitcom 😭😭 Tôi sẽ cố gắng hơn nữa để nhận được đánh giá tốt hơn trong tương lai. Cảm ơn bạn.

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

    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!