Học MySQL 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 các nhà phát triển tại Toss - những người xử lý hàng trăm tỷ lượt truy cập tài chính, và các nhà phát triển đang phát triển nền tảng tại Pangyo (bắt đầu từ những người không chuyên ngành), bạn sẽ học cách thiết kế và xử lý kiến trúc dữ liệu lớn xử lý hàng trăm tỷ dữ liệu chỉ bằng cá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) 44 đánh giá

746 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

Đá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 quy mô theo chiều ngang của MySQL sử dụng Sharding và Partitioning

  • Sharding liệu có 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 lưu lượng truy cập và cân bằng tải sử dụng Replication, cùng với phương thức đảm bảo tính sẵn sàng cao (HA) tương ứng.

  • MVCC để kiểm soát đồng thời và đảm bảo hiệu suất bằng cách sử dụng Transaction & Lock

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

  • Kỹ thuật nâng cao cho câu lệnh SELECT chiế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 lập kế hoạch trước truy vấn

  • Các nguyên tắc thiết kế cấu trúc cơ sở dữ liệu để thiết kế hệ thống có khả năng mở rộng

Các nhà phát triển tại Toss, những người 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à nội dung cuộc trò chuyện thực tế.❗

😄 Hong : Mà anh ơi, dạo này em có thắc mắc là ở Toss, khi sử dụng MySQL, chắc hẳn phải có đến hàng trăm tỷ hay hàng nghìn tỷ dữ liệu, vậy mọi người xử lý tất cả đống đó như thế nào ạ??

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

😄 Hong : Không, thật sự là dạo này tôi khá băn khoăn về chuyện đó. Việc tối ưu hóa SELECT đơn thuần chắc chắn sẽ có giới hạn, và cả dung lượng lưu trữ vật lý cũng vậy... Tôi đang lo lắng không biết nên giải quyết vấn đề này thế nào khi dịch vụ ngày càng phát triển đây;;

😁 Toss : Đừng chỉ cố gắng giải quyết thông qua các câu lệnh truy vấn đơn thuần như SELECT, nếu cậ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 mà. Vì giới hạn vật lý là điều hiển nhiên rồi.

😁 Toss : Mà cho hỏi ai vậy ạ??

😄 Hong: ㅡㅡ Thôi đừng đùa nữa... Lần này hãy chỉ cho tôi về cái này đi, rồi kết hợp với những gì tôi biết để chúng ta cùng nhau làm thử xem.

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

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


Đây không phải là một bài giảng lý thuyết suông nhàm chán, mà tôi đã chuẩn bị nó như một hướng dẫn thực hành giúp bạn chinh phục hoàn toàn các tính năng cốt lõi của MySQL thông qua việc trực tiếp viết truy vấn và cùng nhau 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 hoàn toàn bằng SQL thuần túy

* Không sử dụng thêm ngôn ngữ nào khác. Khóa học chỉ sử dụng thuần túy cú pháp SQL để xử lý MySQL.

📌 Nội dung và các câu lệnh SQL thực tế bao gồm hơn 1500 dòng

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

📌 Nhiều cách sử dụng MySQL đa dạng khó có thể dễ dàng bắt gặp trong môi trường thực tế

* Truy vấn dưới dạng Procedure có xấu không?? Nói rằng nó luôn luôn xấu là một cách diễn đạt sai lầm. Chúng ta sẽ tìm hiểu về 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 giả (mock data)

* Việc chỉ gửi truy vấn thông qua các dữ liệu nhỏ đơn thuần là không hiệu quả. Tôi cung cấp một số câu lệnh truy vấn để tạo ra các dữ liệu giả (mock data) đa dạng để sau này các bạn có thể tự mình học hỏi thêm nhiều điều hơn nữa.

📌 Lối tắt từ Junior lên Senior..! Thiết kế hệ thống

* Việc tinh chỉnh các truy vấn được viết một cách đơn giản luôn 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 (traffic).

* 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ể nâng cao năng lực thiết kế kiến trúc hệ thống.

Đề xuất cho những đối tượng sau

Nhà phát triển Backend

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

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

Tìm việc khó quá.

Kỹ sư DB cấp Junior

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

Khóa học này bao gồm những nội dung sau đây.

* 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 thực tế

* Các mẫu thiết kế DB 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ô hình tối ưu hóa cho CRUD

* Kiến trúc nội bộ và lưu trữ của MySQL

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

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

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

* 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 ta hầu hết là xin việc và chuyển việc. Trong điều kiện này, thực tế rất đơn giản. Đó là 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 bài giảng này 🤭

  • Là một nhà phát triển bắt đầu từ một ngành không liên quan, và hiện đang làm việc với tư cách là nhà phát triển backend nền tảng tại Pangyo.

  • Mục tiêu của tôi là mang đến cho bạn những phương pháp và lý thuyết phát triển thực tế, đồng thời là một người chia sẻ kiến thức, cùng tạo ra các bài giảng với những người quen có năng lực xung quanh thay vì làm một mình..

  • Nhờ hoạt động chăm chỉ nên tôi là 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 bài giảng này 🤭

  • Một nhà phát triển máy chủ đã tốt nghiệp chuyên ngành Khoa học máy tính ở tỉnh lẻ, từng làm việc tại Naver và hiện đang đảm nhận vai trò phát triển backend tại Toss

  • Luôn thiếu thời gian nên bị Hong mắng rất nhiều, một nhà phát triển...

  • Nhà phát triển khao khát đạt được tự do tài chính và đang mơ ước trở thành nhà phát triển độc lập (solodev)

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

Hướng dẫn hoàn chỉnh về Kafka dễ hiểu và chuyên sâu nhất [ By. Người không chuyên & Nhà phát triển Kakao ]

  • Tôi sẽ hướng dẫn cho các bạn tất cả về cách hiện thực hóa kiến trúc có thể kết nối lỏng lẻo giữa các dịch vụ bằng cách sử dụng MSQ tiêu biểu nhất thường được dùng kèm khi sử dụng Database!!

Những điều cần lưu ý trước khi học

  • IDE :

    Jetbrains intelliJ

  • MySQL :

    9.2.0 for macos15.2 on arm64 (Homebrew)

Chúng tôi đang vận hành một phòng chat 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?

  • Nhà phát triển Backend từ 1 đến 3 năm kinh nghiệm đang cảm thấy giới hạn nếu chỉ làm CRUD

  • Nhà phát triển đã từng gặp phải tình trạng hiệu suất dịch vụ bị giảm do truy vấn chậm

  • Những người 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

  • Nhà phát triển server muốn giao tiếp chuyên sâu với DBA và kỹ sư dữ liệu

  • Dành cho những ai muốn nâng cao năng lực giải quyết vấn đề trong thực tế, thay vì chỉ học SQL trên 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 suất, chẳng hạn như dữ liệu tài chính

Xin chào
Đây là Hong

7,535

Học viên

461

Đánh giá

142

Trả lời

4.7

Xếp hạng

25

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 một thời gian dài lười biếng ở nhà vì cảm thấy hứng thú với nó, và hiện tại tôi đang đảm nhận vai trò 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 học tập của bản thân, cùng với những vấn đề và giải pháp thực tế mà các bạn có thể gặp phải trong công việc.

 

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 IP Sandbox

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

[Hiện tại] Nhà phát triển máy chủ 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

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ả

44 đánh giá

4.7

44 đá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 :)

    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!

    1.668.048 ₫