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) 47 đánh giá

766 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

에이미

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

8,263

Học viên

541

Đánh giá

149

Trả lời

4.7

Xếp hạng

27

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ả

47 đánh giá

4.7

47 đá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!!

  • digitcomgisul님의 프로필 이미지
    digitcomgisul

    Đánh giá 21

    Đánh giá trung bình 4.1

    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.

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

    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!