강의

멘토링

커뮤니티

BEST
Programming

/

Database

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

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

(4.7) 40 đánh giá

709 học viên

Độ khó Nhập môn

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

  • Hong
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

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

4.7

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!!

5.0

lsls ks

83% đã tham gia

Tôi nghĩ đây là một chủ đề tuyệt vời để có thể hiểu sâu sắc về MySQL một cách thực sự. Vì nó vừa đề cập đến một phần CRUD đơn giản vừa chỉ tập trung vào những câu query được sử dụng trong thực tế, nên càng trở nên hữu ích hơn. Nhưng phần quan trọng hơn có lẽ là các design pattern thiết kế ở cuối. Nó đã giúp ích rất lớn cho tầm nhìn có thể thấy được cả khu rừng. Cảm ơn bạn.

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

  • Kỹ thuật mở rộng ngang MySQL sử dụng Sharding và Partitioning

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

  • Chiến lược phân tán traffic sử dụng Replication và cân bằng tải cùng với phương pháp đảm bảo HA tương ứng

  • Transaction & Lock을 활용한 đồng thời tính kiểm soát và hiệu suất đảm bảo để MVCC

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

  • Kỹ thuật nâng cao cho SELECT xử lý 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 trước

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

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

Nội dung này là cuộc trò chuyện thực tế.

[[SPAN_1]]😄[[/SPAN_2]][[SPAN_2]] Hong[[/SPAN_2]] : Nhưng anh ơi, gần đây em có thắc mắc là khi Toss sử dụng MySQL, với hàng trăm tỷ hoặc hàng nghìn tỷ bản ghi dữ liệu như vậy, họ xử lý tất cả như thế nào vậy??

😁 Toss : Bạn là ai vậy

😄 Hong : Không, thật sự gần đây mình hơi lo về vấn đề này, chỉ tối ưu SELECT thôi cũng có giới hạn, và lưu trữ vật lý cũng sẽ có giới hạn.. Khi dịch vụ phát triển thì phải giải quyết những phần này như thế nào đây, đang băn khoăn quá;;

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

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

😄 Hong: ㅡㅡ Thôi đùa đi... Lần này hãy cho tôi biết về cái này, kết hợp với phần tôi đã 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 đơn giản như SELECT, mà nếu bạn biết cách sử dụng cơ sở dữ liệu thì phải giải quyết bằng cách khác, vì những giới hạn vật lý là rõ ràng

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


Không phải là bài gi강 nhàm chán chỉ liệt kê lý thuyết, mà tôi đã chuẩn bị như một hướng dẫn thực chiến để chinh phục hoàn hảo các tính năng cốt lõi của MySQL thông qua việc cùng nhau viết các truy vấn thực tế và quan sát quá trình hoạt động. 🚀

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

📌Khóa học được triển khai bằng SQL thuần túy

* Không sử dụng thêm ngôn ngữ nào khác. Chỉ sử dụng thuần túy cú pháp SQL và đang làm việc với MySQL.

📌Truy vấn SQL thực tế và nội dung được cấu thành từ hơn 1500 dòng câu lệnh

* Đây là một khóa học bao gồm khoảng 1624 dòng, chứa các truy vấn SQL để tạo ra các query đa dạng và dữ liệu giả, cùng với các phần lý thuyết liên quan đến nội dung bài giảng!

📌Các cách sử dụng MySQL đa dạng khó tiếp cận trong môi trường thực tế

* Các truy vấn dạng thủ tục có tệ không?? Việc nói rằng chúng hoàn toàn tệ là một cách diễn đạt sai lầm. Chúng ta đang đề cập đến các thủ tục 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 đơn giản chỉ gửi truy vấn thông qua dữ liệu nhỏ là không hiệu quả. Để các bạn có thể tự học thêm nhiều hơn trong tương lai, chúng tôi sẽ cung cấp một số truy vấn tạo ra các dữ liệu mẫu đa dạng.

📌Con đường tắt từ Junior đến Senior..! System Design

* Việc tối ưu hóa các truy vấn được viết đơn giản có những hạn chế rõ ràng. Bạn có thể học cách thiết kế hệ thống dựa trên 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 khả năng làm kiến trúc sư hệ thống.

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

Nhà phát triển Backend

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

Người chuẩn bị việc làm

Việc tìm việc làm thật khó quá.

Kỹ sư Cơ sở dữ liệu Junior

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

Trong khóa học này, chúng tôi đang đề cập đến những nội dung như thế này.

* Các biến cấu hình môi trường đa dạng của MySQL

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

* Các mẫu thiết kế DB dành cho lập trình viên server

* 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ộ MySQL và Storage

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

* Hệ thống mở rộng MySQL [ Sao chép và phân tán, Phân vùng và Sharding ]

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

* 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 đích của chúng tôi chủ yếu là tìm việc làm và chuyển việc. Trong điều kiện này, thực ra rất đơn giản. Bởi vì MySQL là Database được sử dụng phổ biến nhất trong các doanh nghiệp.

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

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

  • Mục tiêu là chia sẻ phương pháp phát triển thực tế và lý thuyết phát triển, là người chia sẻ kiến thức tạo ra khóa học cùng với những người quen có năng lực xung quanh chứ không phải một mình

  • Người chia sẻ kiến thức đã được Inflearn phỏng vấn nhờ hoạt động tích cực

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

  • Tốt nghiệp chuyên ngành Khoa học Máy tính tại tỉnh lẻ, từng làm phát triển phần mềm tại Naver và hiện đang làm phát triển backend tại Toss - một lập trình viên server

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

  • Nhà phát triển mơ ước đạt được tự do tài chính và trở thành lập trình viên độc lập

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

Hướng dẫn hoàn hảo về Kafka dễ hiểu và sâu sắc 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ẽ cho bạn biết tất cả về cách triển khai kiến trúc sử dụng MSQ đại diện nhất được sử dụng cùng với nó để có thể thực hiện hình thức kết hợp lỏng lẻo giữa các dịch vụ!!

Lưu ý trước khi học

  • IDE :

    JetbrainsintelliJ

  • MySQL :

    9.2.0 cho macos15.2 trên arm64 (Homebrew)

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

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

  • Các lập trình viên backend 1-3 năm kinh nghiệm cảm thấy giới hạn chỉ với CRUD

  • Nhà phát triển đã trải qua sự suy giảm hiệu suất dịch vụ do các truy vấn chậm

  • Những người muốn thử thách thiết kế hệ thống có thể mở rộng để xử lý lưu lượng truy cập lớn

  • DBA, kỹ sư dữ liệu và nhà phát triển server mong muốn giao tiếp sâu sắc

  • Những người muốn phát triển khả năng giải quyết vấn đề thực tế trong công việc, không chỉ dừng lại ở lý thuyết SQL

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

Xin chào
Đây là

5,970

Học viên

391

Đánh giá

127

Trả lời

4.7

Xếp hạng

22

Các khóa học

Giới thiệu bản thân

Tôi bắt đầu học lập trình sau khi cảm thấy hứng thú với nó trong lúc đang rảnh rỗi ở nhà, và hiện tại tôi đang đảm nhận việc phát triển server nền tảng 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 đa dạng 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 nên 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 tất cả các bạn.

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] Là một nhà phát triển server dày dạn kinh nghiệm tại Pangyo

Lịch sử phỏng vấn

Các thắc mắc khác

  • unduck2022@gmail.com

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ả

40 đánh giá

4.7

40 đánh giá

  • 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!!

  • 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!!

  • 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ế.

    • mongi74213091님의 프로필 이미지
      mongi74213091

      Đánh giá 1

      Đánh giá trung bình 4.0

      Đã chỉnh sửa

      4

      100% đã tham gia

      Tôi đã đăng ký khóa học này vì tiêu đề "xử lý hơn 500 tỷ dữ liệu tài chính" khiến tôi nghĩ rằng có thể sẽ được đề xuất các phương pháp xử lý dữ liệu lớn và thực hành một số phương pháp đó, nhưng thành thật mà nói, vì toàn bộ nộiung đều mang tính lý thuyết nên điểm này có thể sẽ để lại chút tiếc nuối. Tuy nhiên, về mặt nội dung giúp mở rộng hướng xem xét về cách xử lý dữ liệu lớn thì có những nội dung hay, và dường như đã cho tôi cơ hội suy nghĩ thêm một lần nữa về việc liệu chúng ta có thực sự hiểu MySQL mà mình đang sử dụng hay không. Cảm ơn vì khóa học hay.

      • jhong
        Giảng viên

        Xin chào Cheon, cảm ơn bạn đã gửi phản hồi!! Có lẽ việc chỉ tập trung sâu vào MySQL và quá trình thực hành ngày nay không còn ý nghĩa lớn nữa, nên tôi đã chủ yếu tập trung vào cách xử lý dữ liệu và traffic lớn như thế này. Lần tới tôi sẽ cung cấp khóa học tốt hơn để có thể nhận được đánh giá 5 sao. Cảm ơn bạn 😊

    • lslsk08018196님의 프로필 이미지
      lslsk08018196

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      83% đã tham gia

      Tôi nghĩ đây là một chủ đề tuyệt vời để có thể hiểu sâu sắc về MySQL một cách thực sự. Vì nó vừa đề cập đến một phần CRUD đơn giản vừa chỉ tập trung vào những câu query được sử dụng trong thực tế, nên càng trở nên hữu ích hơn. Nhưng phần quan trọng hơn có lẽ là các design pattern thiết kế ở cuối. Nó đã giúp ích rất lớn cho tầm nhìn có thể thấy được cả khu rừng. Cảm ơn bạn.

      • jhong
        Giảng viên

        Xin chào lsls ks, cảm ơn bạn đã để lại đánh giá tốt. Như bạn đã nói, về phần CRUD thì tôi thực sự muốn tập trung chủ yếu vào những dạng sử dụng thực tế, và phần tôi tập trung nhiều hơn là về thiết kế design. Tôi sẽ cố gắng cung cấp những khóa học tốt hơn trong tương lai. Cảm ơn bạn :)

    1.644.223 ₫

    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!