PostgreSQL vs MySQL: So sánh hiệu năng trong truy vấn phức tạp và CCU lớn | Trần Quốc Huy - Wecommit

Поділитися
Вставка
  • Опубліковано 4 чер 2024
  • #WecommitxTop1Percent #tranquochuy
    Mục Tiêu: Trong video này tôi giúp sẽ giúp anh em so sánh được hiệu năng khi sử dụng Database PostgreSQL và MySQL đối với những truy vấn phức tạp
    Ghi chú: Bạn có thể tham gia hành trình trở thành Top 1% những lập trình viên thành công nhất cùng tôi bằng cách đăng ký tham dự chương trình Từ điển tối ưu 100x hiệu năng.
    Trong chương trình này, bạn sẽ thu được các giá trị như sau:
    - Cực kỳ tự tin dù ở bất kỳ công ty nào.
    - Nổi bật, có năng lực (không phải chỉ ở mỗi chuyên môn mà nhiều khía cạnh)
    - Tăng kinh nghiệm vù vù từ nhiều bài toán thực tế (cách đặc biệt của tôi).
    - Trở thành con người quyết liệt trong hành động, làm việc có chiến lược.
    - Năng lực tối ưu cơ sở dữ liệu của bạn sẽ vượt trội so với hàng nghìn lập trình viên khác. Bạn sẽ thuộc Top 1% những người giỏi nhất.
    Xem chi tiết chương trình của tôi ở đây: wecommit.com.vn/tu-dien-toi-u...
    Bạn có thể xem các dự án mà tôi đã trực tiếp thực hiện tại đây: wecommit.com.vn/du-an
    🎯 Một số Video khác bạn có thể xem
    - Bí mật TOP 1% những lập trình viên giỏi nhất | Trần Quốc Huy Wecommit : • Bí mật TOP 1% những lậ...
    - Thiết kế hệ thống Search Engine xử lý 100 tỷ Web Page (Google, Bing...) | System Design Wecommit: • Thiết kế hệ thống Sear...
    - Cách Quora thiết kế cơ sở dữ liệu để đáp ứng 400 triệu người dùng: • Thiết kế Database đáp ...
    - Bí quyết tìm lái xe của Uber: • Bí quyết tìm lái xe tạ...
    - Hiểu toàn bộ kiến thức về PostgreSQL trong 1h30 phút: • Hiểu toàn bộ PostgreSQ...
    - Học SQL Server trong 60 phút : • Học SQL Server trong 6...
    - Học MongoDB trọn vẹn trong 1 giờ 30 phút: • Học MongoDB trọn vẹn t...
    - Tìm hiểu về Vector Database - loại Database giúp Generative AI bùng nổ: • Loại Database giúp Gen...
    📱 Nếu bạn muốn liên hệ với tôi:
    Linkedin: / huytq
    Facebook: / tranquochuy.toiuu
    #WecommitxTop1Percent #mysql #toiuu100x #tranquochuy #wecommit #databasedesign #databaseperformance #databasetutorial #algorithm #datastructureandalgorithm #systemdesignwecommit #toiuucosodulieu #thietkecosodulieu #thietkehethong #toiuusql #cautrucdulieuvagiaithuat #postgresql #postgres #postgresqltutorial #databasetutorial #databasetutorials
  • Наука та технологія

КОМЕНТАРІ • 178

  • @namnguyenpt
    @namnguyenpt Місяць тому +6

    Cảm ơn anh Huy, kiến thức rất chất lượng, ngắn gọn xúc tích, hiểu luôn được bản chất vấn đề và có tư duy đánh giá lựa chọn database phù hợp. Tiện đây em có bổ sung thêm cho postgres database có cơ chế gọi là "Heap-Only Tuples (HOT)" giúp tái sử dụng lại các vùng dữ liệu cấp cũ, giúp giảm kích thước bảng, index và giảm gánh nặng cho vacuum (vacuum giống như 1 cô dọn vệ sinh trong trường học ). Nhờ "HOT" giúp các hạn chế mvcc của postgres được cải thiện khá nhiều ạ.

  • @duongxuana414
    @duongxuana414 Місяць тому +31

    Cảm ơn anh Huy giải thích rất chi tiết từ kiến trúc của 2 loại database ạ. Với hệ thống write nhiều và có nhiều index thì hiệu năng postgreSQL bị ảnh hưởng, tuy nhiên với những câu lệnh phức tạp thì để phân tích và đưa ra execution plan thì postgreSQL mạnh hơn MySQL. Do đó với hệ thống nhỏ, truy vấn đơn giản thì dùng ông nào cũng được, với hệ thống cần truy vấn những câu lệnh phức tạp thì PostgreSQL ngon hơn.

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому +4

      hiểu từ kiến trúc anh em sẽ rất tự tin và nhớ lâu.
      Một ngày tuyệt vời nhé em

    • @thanhvinh1
      @thanhvinh1 Місяць тому +1

      @@tranquochuywecommit "hệ thống write nhiều và có nhiều index" thì MySQL có cơ chế table riêng ngon hơn, vậy tại sao postgres ko sử dụng cơ chế tương tự? phải chăng làm thế thì nó ko phân tích và optimize đc câu query cho insert/update?

    • @Huynguyen-ew1ep
      @Huynguyen-ew1ep Місяць тому +8

      Vì trong innoDB mysql thì index và dữ liệu là 1 thể thống nhất .Còn postgres thì index và dữ liệu lưu riêng biệt (mysql các bảng nó lưu trong 1 file có tên là .ibd còn postgresql thì phân chia phức tạp hơn và qua 1 thứ gọi là OID)
      Khi 1 truy vấn đi vào , cơ chế index tách riêng giúp postgresq có thể kết hợp các loại chỉ mục khác nhau trong câu truy vấn tốt hơn và không bị hạn chế I/O.
      Còn mysql thì ngược lại do index và dữ liệu là 1 thể thống nhất -> khi bạn search thực tế là nó quét luôn dòng dữ liệu và index 1 lúc làm tăng I/O cũng như không thể kết hợp các index với nhau được ( vì muốn kết hợp thì bắt buộc phải load toàn bộ data)
      Do vậy khi write -> cơ chế chỉ mục và dữ liệu là 1 thể thống nhất giúp cho việc nó chỉ write 1 lần duy nhất index bị ảnh hưởng thôi .
      Ngược lại khi tách dữ liệu và index , thì write -> bắt buộc phải write cho toàn bộ index .
      Đó là lí do tại sao postgresql bạn có thể làm việc tốt với dữ liệu json , vì bản chất nó chỉ tốn I/O cho việc load các dữ liệu có index thôi . Mysql thì nó phải load luôn cả dòng dữ liệu chứa json , điều này làm tăng I/O .
      Tóm tắt : Mysql khi load secondery index -> đối chiếu với primary key -> ra kết quả (tốn x2 công việc)
      Postgresql : load 1 lần duy nhất và không có khái niệm secondery index (bản chất là không có khóa chính) -> đẩy vào heap

    • @futhedude4848
      @futhedude4848 Місяць тому

      @@Huynguyen-ew1ep note ở đây để t2 quay lại ngâm cứu ạ.

    • @Huynguyen-ew1ep
      @Huynguyen-ew1ep Місяць тому

      @@futhedude4848 Ok nha bạn . Nếu mình có phát biểu sai gì đó thì cho mình thêm thông tin nha .
      Cái này mình cũng chỉ nghiên cứu sơ qua có thể không chính xác ở các bản version khác nhau

  • @vankhanhnguyen2514
    @vankhanhnguyen2514 Місяць тому +1

    Cảm ơn a Huy về bài chia sẻ, rất hay và áp dụng được liền vào các bài toán thực tế

  • @phivunguyen6536
    @phivunguyen6536 Місяць тому +1

    Cảm ơn anh Huy rất nhiều, kiến thức rất chất lượng ạ 😊

  • @chuannguyen1686
    @chuannguyen1686 Місяць тому +1

    E học đc rất nhiều thứ từ trang của a, từ kiến thức chuyên môn cho tới tư duy trong công việc.

  • @nguyendat-uq2bc
    @nguyendat-uq2bc Місяць тому

    Những kiến thức đáng quý đến khi xem xong video này em mới biết. Trân trọng từng video anh chia sẻ ạ!

  • @TrongNguyen-yu1sm
    @TrongNguyen-yu1sm Місяць тому

    Phân tích chất lượng quá anh ơi, cảm ơn anh

  • @tiendang5149
    @tiendang5149 Місяць тому +1

    1 video cực kì chất lượng, cảm ơn anh đã chia sẻ

  • @tridangvan5159
    @tridangvan5159 Місяць тому +1

    Kiến thức quá hay anh ơi. Cảm ơn ah đã chia sẻ ạ

  • @hoangbuiminh1400
    @hoangbuiminh1400 Місяць тому

    Video này tiếp tục khiến em phải wow. Cảm ơn anh Huy nhiều ạ

  • @dongpham6878
    @dongpham6878 Місяць тому

    Hay quá anh ạ. Mong anh ra nhiều videos hơn nữa nhé. Cảm ơn anh rất nhiều ạ

  • @HungNguyenVan-dd9qm
    @HungNguyenVan-dd9qm Місяць тому

    Dev hơn 10 năm giờ mới nắm được kiến thức này. Cảm ơn anh ạ

  • @spacex92
    @spacex92 Місяць тому

    Thanks anh, PostgreSQL vs MySQL là những CSDL rất phổ biến và đặc biệt là miễn phí, do vậy trong các cty ae DEV thường làm từ a-z, rất cần những kiến thức hữu ích như vậy. Vote 5* cho video này.

  • @ntphiep
    @ntphiep Місяць тому

    rất thiết thực, cam ơn anh

  • @phamtienthanh445
    @phamtienthanh445 Місяць тому

    cảm ơn bác chia sẻ nhé ạ
    😀

  • @chieule4999
    @chieule4999 Місяць тому

    Em cảm ơn anh ạ. Anh giải thích rất chi tiết và giúp em rút ngắn được thời gian tìm hiểu và học tập về database rất nhiều

  • @thiphung4995
    @thiphung4995 Місяць тому

    Cảm ơn anh ạ!

  • @silentknight46
    @silentknight46 Місяць тому +7

    Hay quá, làm dev lâu năm giờ mới biết được những kiến thức này

  • @hieuvan5278
    @hieuvan5278 Місяць тому

    Kiến thức quá hay, xem anh giải thích thấy cuốn thật sự :))

  • @buikha2011
    @buikha2011 Місяць тому

    Kênh phát triển nhanh quá, chúc mừng anh Huy

  • @skybita
    @skybita Місяць тому

    Giá trị, cảm ơn anh

  • @tuancuong92
    @tuancuong92 Місяць тому

    Cám ơn anh, em đang từ mongo muốn quay lại đào sâu nghiên cứu 2 ông này thì lại gặp được video của anh đúng lúc 😂

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому +1

      Anh có cả video mysql full và postgres full trên kênh này đấy. Nếu em muốn nghiên cứu có thể xem 2 video này, nó tiết kiệm nhiều thời gian đọc tài liệu cho em.

  • @harry-vu
    @harry-vu Місяць тому

    hay quá ạ làm bao lâu rồi giờ mới được khai sáng ạ. Cảm ơn a đã chia sẻ những kiến thức chất lượng ạ 😁😁

  • @duyetpham7924
    @duyetpham7924 Місяць тому +1

    Hay quá, cảm ơn a, e hiểu hơn vì sao Big data open source họ hay lấy Postgresql làm gốc

  • @NhanNguyen-xb5cn
    @NhanNguyen-xb5cn Місяць тому

    hehe like + cảm ơn a Huy trước rồi xem

  • @HaTrungPham-zh8ht
    @HaTrungPham-zh8ht 15 днів тому

    Cảm ơn bạn!

  • @chauvuluan1926
    @chauvuluan1926 Місяць тому +1

    Cảm ơn anh , Video rất hay , anh hãy so sánh PostgreSQL vs Oracle đi anh .

  • @dangquytai8875
    @dangquytai8875 Місяць тому

    Hay quá thầy ơi

  • @damvv.ptit12
    @damvv.ptit12 Місяць тому +1

    Xem những video của anh Huy như nghe một câu chuyện, xem một bộ phim mà mình yêu thích. Muốn nuốt từng dòng đừng đoạn 1 😊😊😊. Kiến thức chuyên sâu và năng lượng chia sẻ tích cực làm người nghe phát sướng. Cảm ơn anh rất nhiều, cảm ơn anh đã chia sẻ.🤩🤩🤩

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      đọc bình luận của chú thú vị không kém.
      Cảm ơn Đam nhé

    • @damvv.ptit12
      @damvv.ptit12 Місяць тому

      @@tranquochuywecommit em luyện thành 1 chuyên gia cmt dạo được đấy a nhỉ

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      @@damvv.ptit12 được đấy chú, đã làm gì thỉ phải Top 1% trong việc mình làm. Hiệu quả đều đến cả

  • @quangphongtran3558
    @quangphongtran3558 Місяць тому

    quá hay

  • @LearningEverything1001
    @LearningEverything1001 Місяць тому

    sự khác biệt giữa coder giỏi và kinh nghiệm ở video này , thks a

  • @dongphim
    @dongphim Місяць тому

    Quá hay nếu anh không nói ra thì có lẽ sẽ mất thêm nhiều năm nữa để hiểu cơ chế của MYSQL và POSTGRES.
    Cảm ơn anh, chúc anh nhiều sức khỏe.

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      người anh em đăng ký kênh để nhận được thông tin sớm nhất của các video sắp tới nhé

  • @vietronaldo23w
    @vietronaldo23w Місяць тому

    Đầu tiên e cảm ơn a vì những chia sẻ bổ ích của a. e có 1 câu hỏi ạ.
    Mysql: theo a nói thì những thằng khác (nhưng thằng không thực hiện lệnh update) thì sẽ lấy dữ liệu trong vùng undo đúng k ạ. vậy thì lúc không có thằng nào update thì vùng undo đấy nó có tồn tại không a.
    - nếu có thì tức là mỗi câu lệnh select nó đều phải check trước liệu data có trong undo trước đúng không ạ.
    - nếu không phải lúc nào cũng tồn tại thì làm sao để nó phân biệt được lúc nào cần check trong undo lúc nào query trực tiếp trong bảng thực ạ.
    Lần nữa cảm ơn a và nếu được a có thể đi kèm với documents về mvcc của postgres và mysql được không ạ.

  • @vuduchong
    @vuduchong Місяць тому

    nghe cao thủ khác bọt thật, quá hay.

  • @chuviet7865
    @chuviet7865 Місяць тому +1

    kiến thức quá tuyệt vời. cảm ơn đã chia sẻ. so sánh giữa PostgreSQL với SQL Server đi a.

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      Đang có 1 loạt ý tưởng, xem so sánh cái nào anh em ah
      1. PostgreSQL vs Oracle
      2. PostgreSQL vs MongoDB
      3. SQL Server vs Oracle
      4. MySQL vs Oracle

    • @quanghungnguyen3018
      @quanghungnguyen3018 Місяць тому

      ​​@@tranquochuywecommit anh làm so sánh 3.mssql với oracle trước đi ạ

  • @nguyenduyuc6889
    @nguyenduyuc6889 6 днів тому

    Cảm ơn anh đã chia sẻ các kinh nghiệm phong phú, tiện đây em muốn hỏi là anh có thể thực hiện bài đánh giá cho SurrealDB, MongoDB và ScyllaDB không ạ?

  • @PhatNguyen-eq5tm
    @PhatNguyen-eq5tm Місяць тому

    Nếu cập nhật mà thêm record(đối với Posgres) thì thì sẽ lấy-gán ID như thế nào anh? Có giống như lúc insert? VÍ dụ last id = 100, sau đó 100 transaction update và không có cái nào commit thì id.nextVal() lúc này là 101 hay 201?

  • @vulam1821
    @vulam1821 Місяць тому +2

    A có thể chia sẻ nguồn bài viết được ko?
    Chưa từng nghe về ref column trong mvcc
    Khi update thì pg sẽ tạo new row version với transaction id, xmin,xmax
    Sở dĩ transaction khác ko đọc dc uncommited data là vì transaction khác read commited data từ snapshot trong quá khứ, ko phải snapshot mà current transaction đang dùng

  • @some1here0
    @some1here0 Місяць тому

    nice sharing

  • @NguyenQuang-vi9su
    @NguyenQuang-vi9su Місяць тому +1

    Cũng từng tìm hiểu để xem thì cũng chỉ biết là postgres không nên sử dụng vào trong trường hợp ghi nhiều với các bài test chứ cũng chưa hiểu rõ vì sao.
    nay thấy video giải thích của anh rõ luôn

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому +1

      đi từ kiến trúc thì anh em sẽ thấy mọi thứ rất rõ ràng, vì thế anh luôn chia sẻ mọi thứ dưới góc độ này.
      Cảm ơn em đã ủng hộ video của anh nhé

    • @NguyenQuang-vi9su
      @NguyenQuang-vi9su Місяць тому

      @@tranquochuywecommit có video của a là hiểu rõ vấn đề, e dùng nhiều về mysql cũng đã cài posgres bài toán to nên chưa gặp vấn đề về dữ liệu để phải suy nghĩ lựa chọn. với lại cái pgadmin quản lý đang hơi rườm rà.

  • @Urgea
    @Urgea Місяць тому

    hay

  • @tachinguyen4dev
    @tachinguyen4dev Місяць тому

    anh có thể làm bài so sánh MVCC postgresql với MSSQL không, bỏ qua vấn đề chi phí. Xin cám ơn anh

  • @willnguyendev
    @willnguyendev Місяць тому

    Có thể cho mình hỏi dùng phần mềm gì để present bằng apple pen ko ah?

  • @appornistudio2767
    @appornistudio2767 Місяць тому

    cho mình xin tên cái đèn chụp cao cao với nhé. Nhìn đẹp quá.

  • @nguyenphucanh7523
    @nguyenphucanh7523 Місяць тому

    kiến thức của a rất bổ ích. em muốn hỏi thêm: microsoft SQL server thì sao a

  • @baudeejay8592
    @baudeejay8592 Місяць тому

    Anh dùng ứng dụng nào vẽ thế anh ?

  • @user-zj2dj1px8z
    @user-zj2dj1px8z Місяць тому

    So sánh thêm vs Oracle đi Huy

  • @pinterest1141
    @pinterest1141 Місяць тому

    hay quá sếp ơi, kênh nội dung chất lượng

  • @Hanako67198
    @Hanako67198 5 днів тому

    e có 1 thắc mắc về clip oracle a có nói mySQL có tempdb chứ không có undo anh

  • @LongLưuĐạt
    @LongLưuĐạt Місяць тому

    chất

  • @tuanhiepnguyen2376
    @tuanhiepnguyen2376 Місяць тому

    Em cảm ơn vì video hay của anh, rất chi tiết rõ ràng dễ hiểu ,em có câu hỏi về mysql khi không may chạy lệnh deleted all các bản ghi trong bảng cần back lại thì làm thế nào ạ

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      Delete và đã commit rồi ah anh em?
      Trường hợp này thì nguyên tắc đầu tiên vẫn luôn là câu hỏi "có bản backup không?"

  • @TruongCaoXuan
    @TruongCaoXuan Місяць тому +1

    Việc chọn giữa MySQL và PostgreSQL phụ thuộc vào yêu cầu cụ thể của ứng dụng và môi trường sử dụng.
    -> Chọn MySQL trong trường hợp xây dựng một hệ thống OLTP như ứng dụng web cần hiệu suất cao và dễ quản lý, hoặc nếu ứng dụng của bạn có lượng truy vấn ghi (write) nhiều hơn đọc (read).
    -> Chọn PostgreSQL trong trường hợp xây dựng hệ thống OLAP như Data warehouse để xử lý các truy vấn đọc (read) phức tạp.

    • @NhanNguyen-ei7tr
      @NhanNguyen-ei7tr Місяць тому +1

      Postgress cũng vẫn là OTLP, OLAP em nghĩ nên chọn 1 csdl chuyên OLAP anh ạ.

    • @futhedude4848
      @futhedude4848 Місяць тому

      note ở đây để t2 quay lại ngâm cứu ạ.

  • @PLCTrainingforBeginners
    @PLCTrainingforBeginners Місяць тому +2

    Thảo nào nhiều hệ thống lớn họ dùng Postgre

  • @huypham2872
    @huypham2872 Місяць тому

    So sánh Sql vs Oracle đi anh

  • @quang.luu.179
    @quang.luu.179 Місяць тому

    👍👍👍

  • @nhansoftech
    @nhansoftech Місяць тому

    Nói luôn cho đủ bộ a nhờ. thêm SQL Server nữa

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      sắp ra tiếp video oracle và sql server anh em nhé, ngay video kế tiếp

  • @KhoiNguyen--Le
    @KhoiNguyen--Le Місяць тому

    kiến thức này là kinh nghiệm xương máu, cám ơn anh Huy sâu sắc

  • @trinhle-sm2fu
    @trinhle-sm2fu Місяць тому

    Chào anh Huy cho em hỏi vậy nếu hệ thống vừa phải ghi liên tục và truy vấn phức tạp thì nên dùng thằng nào hay có cách xử lý khác ạ

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому +1

      Phải xem trong 2 cái đấy thì cái nào là chủ đạo, đâu là nghiệp vụ quan trọng nhất.
      Tư duy 80-20 thôi anh em, tập trung cho 20% quan trọng nhất

  • @gianduongnguyen1590
    @gianduongnguyen1590 Місяць тому +1

    cảm ơn anh ạ, anh cho em hỏi làm sao để anh tìm hiểu được những thứ như này vậy ạ, danh đọc source code, đọc docs hay làm gì khác vậy ạ

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      mọi thứ bắt nguồn từ sự tò mò và mong muốn tìm hiểu sâu trong lĩnh vực này em ạ.
      Anh học và đọc rất nhiều. Đọc documents là điều bắt buộc rồi, ngoài ra anh học từ nhiều thứ trong quá trình làm các dự án và nghiên cứu các vấn đề gặp phải trong dự án.
      Anh cũng có 1 cộng đồng chia sẻ các dự án với nhau, nên nhiều cơ hội để tìm hiểu.

  • @nhatnguyenhuu7822
    @nhatnguyenhuu7822 Місяць тому

    Em có thắc mắc là khi câu lệnh SQL của em không thay đổi trong các lần chạy tiếp theo, nhưng mà lúc sau em đánh Index trên bảng cần truy vấn, thì việc phân tích chiến lược thực thi có được phân tích lại không ạ? Em cảm ơn!

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      khi em bổ sung các thông tin mới, ví dụ như Index mà em nói, chiến lược thực thi sẽ được cân nhắc, đánh giá lại.
      Tuy nhiên việc lựa chọn vẫn dựa trên Cost ông nào thấp nhất, không phải cứ đánh Index là ngon.
      Chính vì thế, anh em lập trình lúc đánh index xong phải kiểm tra chiến lược thực thi xem câu lệnh nó có dùng được không nhé.

  • @_DuongMinhLong
    @_DuongMinhLong Місяць тому

    :))) phải giỏi và hiểu sâu cỡ này ms đúng là chuyên gia anh ơiii

  • @mtpcess
    @mtpcess Місяць тому

    Có db nào kết hợp xử lý index ngon của mysql với statics sql ngon của postgres không anh

  • @duyanhnguyen1562
    @duyanhnguyen1562 Місяць тому

    Cảm ơn anh về bài chia sẻ này, nó rất hay và giúp em hiểu ra một vài vấn đề của dự án em đang làm. Tuy nhiên em có 1 câu hỏi đó là khi mà postgres thêm 1 dòng mới khi chạy câu lệnh update thì đối với bảng có id là unique thì không biết là nó có vi phạm cái unique này không bởi như em thấy trong vd của anh là bản ghi thêm mới khi đó có id là y hệt bản ghi cũ. Mong sớm nhận được phản hồi từ anh ạ :D

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      không hề vi phạm gì em nhé. Đây là cơ chế xử lý ngầm của Database.
      Unique của em là ở phía logic thôi.

    • @duyanhnguyen1562
      @duyanhnguyen1562 Місяць тому

      Dạ vâng ạ! Cảm ơn anh nhiều nhé 😁

  • @BackendNestJs
    @BackendNestJs Місяць тому

    em chào anh ạ , mong anh ra thêm video về cách làm mô hình master-slave của postgres , em cảm ơn ạ

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому +1

      okie em, nếu nhiều người cùng cần anh sẽ làm nhé

    • @futhedude4848
      @futhedude4848 Місяць тому

      @@tranquochuywecommit +1 ạ

  • @solution-archiect
    @solution-archiect Місяць тому

    anh Huy ơi, anh xài phần mềm gì để vẽ trên Ipad và record trực tiếp vậy ạ? Em đang muốn làm video kiểu như vậy.

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому +1

      goodnotes với obs anh em nhé.
      Anh em có thể kết bạn với tôi (thông tin trong phần bình luận), có gì giúp được tôi giúp cho

    • @solution-archiect
      @solution-archiect Місяць тому

      @@tranquochuywecommit dạ vâng, em cảm ơn anh Huy nhiều.

  • @quanghungnguyen3018
    @quanghungnguyen3018 Місяць тому

    Cảm ơn anh❤. Anh có thể so sánh giữa 2 loại database trả phí là MSSQL và Oracle được không ạ? Với các hệ thống quản lý dữ liệu lớn thì em thấy các công ty ở Việt Nam dùng Oracle nhiều hơn MSSQL. Có phải vì Oracle tối ưu về mặt chi phí hơn không ạ?

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      Oracle đắt hơn đấy, nhưng nó có những vấn đề quan trọng hơn chi phí nhiều lần. Video tới anh sẽ so sánh 2 loại này nhé

    • @quanghungnguyen3018
      @quanghungnguyen3018 Місяць тому

      @@tranquochuywecommit Vâng, em cảm ơn anh ạ

  • @aken2802
    @aken2802 Місяць тому

    Cái tiến trình vancum mình có thể setting thời gian nó chạy được không nhỉ ! ví dụ set vao bản đêm ko phải giờ cao điểm để bớt giành tài nguyên của table

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому +1

      nếu nói chi tiết hơn về vacuum trong postgresql thì nó có 2 kiểu: tự động và thủ công.
      Anh em có thể điều chỉnh chiến lược và thời gian để tiến trình vacuum ảnh hưởng ít nhất tới hiệu năng.

    • @futhedude4848
      @futhedude4848 Місяць тому

      note ở đây để t2 quay lại ngâm cứu ạ.

  • @trunglehuynh
    @trunglehuynh Місяць тому

    Video rất hay bạn cho mình hỏi, Nếu bản index cùng chỉ về 2 địa chỉ, ví dụ Hoàng -> [A, D], thì làm sao PostgreSQL biết phải sử dụng cái nào? Cảm ơn

  • @namminh4336
    @namminh4336 Місяць тому

    So sánh Oracle luôn anh ạ

  • @nguyenthethu7631
    @nguyenthethu7631 Місяць тому

    Anh Huy cho em hỏi tại sao Postgre lại dùng cơ chế tạo thêm dòng trong mvcc. Rõ ràng đây là một lỗ hổng trong hiệu năng của hệ thống. Postgre làm như đổi lại được điều gì?

    • @luanpham9114
      @luanpham9114 Місяць тому

      Mặc dù việc tạo thêm dòng trong MVCC có thể gây ra chi phí về không gian lưu trữ và yêu cầu thực hiện VACUUM để duy trì hiệu suất, lợi ích mà MVCC mang lại trong việc quản lý đồng thời và đảm bảo tính nhất quán dữ liệu vượt trội hơn nhiều so với các hạn chế này. Đây là lý do tại sao PostgreSQL chọn cơ chế MVCC, mang lại một hệ thống quản lý cơ sở dữ liệu mạnh mẽ và hiệu quả cho các ứng dụng hiện đại.
      1. Tính nhất quán mà không khóa (Lock-free Consistency)
      MVCC cho phép các giao dịch đọc và ghi cùng lúc mà không cần chặn nhau. Điều này đạt được bằng cách tạo ra các phiên bản khác nhau của cùng một dòng dữ liệu:
      Đọc không khóa: Các giao dịch đọc có thể đọc dữ liệu phiên bản cũ ngay cả khi có các giao dịch ghi đang diễn ra, miễn là dữ liệu này phù hợp với thời gian snapshot của giao dịch.
      Ghi không chặn: Các giao dịch ghi có thể tạo phiên bản mới của dòng dữ liệu mà không làm gián đoạn các giao dịch đọc đang tồn tại.
      2. Isolation Levels và Snapshot Isolation
      PostgreSQL cung cấp các mức độ cô lập khác nhau để quản lý sự cô lập của giao dịch, từ Read Uncommitted đến Serializable:
      Snapshot Isolation: Mỗi giao dịch nhìn thấy một "snapshot" của cơ sở dữ liệu tại thời điểm nó bắt đầu. Điều này giúp giảm hiện tượng đọc bẩn (dirty reads) và đọc không lặp lại (non-repeatable reads), cải thiện tính nhất quán mà không cần khóa nhiều.
      3. Giảm xung đột (Conflict Reduction)
      MVCC giảm xung đột giữa các giao dịch đọc và ghi. Trong cơ chế khóa truyền thống, giao dịch đọc phải chờ cho giao dịch ghi hoàn thành, dẫn đến tình trạng nghẽn cổ chai. Với MVCC, nhiều giao dịch có thể diễn ra đồng thời, cải thiện hiệu suất tổng thể.
      4. Lợi ích của Vacuum
      PostgreSQL sử dụng cơ chế VACUUM để dọn dẹp các phiên bản cũ của dòng dữ liệu:
      Dọn dẹp và tái sử dụng không gian: VACUUM xóa bỏ các phiên bản không còn cần thiết, tái sử dụng không gian đã được giải phóng.
      Phân mảnh giảm thiểu: Mặc dù VACUUM cần tài nguyên, nó giúp duy trì hiệu suất cơ sở dữ liệu bằng cách giảm phân mảnh và giữ cho kích thước cơ sở dữ liệu không tăng quá mức.
      5. Độ tin cậy và khôi phục (Reliability and Recovery)
      MVCC giúp PostgreSQL khôi phục cơ sở dữ liệu một cách dễ dàng hơn:
      Khôi phục sau sự cố: Nếu hệ thống gặp sự cố, các giao dịch chưa hoàn thành sẽ không ảnh hưởng đến các phiên bản dữ liệu đã được xác nhận (committed).
      Tăng khả năng phục hồi: Cơ chế này giúp bảo vệ dữ liệu khỏi các lỗi phần cứng và phần mềm bằng cách duy trì nhiều phiên bản dữ liệu.
      6. Tối ưu hóa hiệu suất cho các tải công việc cụ thể
      MVCC có thể tối ưu hóa cho các ứng dụng cụ thể:
      Ứng dụng nhiều đọc: Với các ứng dụng có tỷ lệ đọc cao, MVCC cho phép các giao dịch đọc thực thi nhanh chóng mà không bị chặn bởi các giao dịch ghi.
      Ứng dụng nhiều ghi: MVCC có thể xử lý tốt các ứng dụng ghi nhiều mà không ảnh hưởng nhiều đến hiệu suất đọc.

  • @TranMai-ri8pc
    @TranMai-ri8pc 6 днів тому

    bên e dùng odoo, sao vẫn thấy tih thoảng họ lên lịch vaccum thủ công nhỉ @@, theo video trên thì e đang nghĩ vaccum là tự động :D

  • @Sun_sun_19
    @Sun_sun_19 Місяць тому

    Anh ơi, có video trình bày về database không ạ? Em chưa hiểu về Database ạ

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      em có thể xem 1 video full course về database bất kỳ của anh trên kênh này. Nếu mới bắt đầu em nên xem Mysql full course trên kênh nhé

    • @Sun_sun_19
      @Sun_sun_19 Місяць тому

      @@tranquochuywecommit em cảm ơn anh nhiều ạ

  • @HungHoang-di5gh
    @HungHoang-di5gh Місяць тому

    Anh ơi không biết anh có thể làm về Apache Cassandra được không ạ

  • @bongakinhien2340
    @bongakinhien2340 Місяць тому

    Vậy Postgre phù hợp với các bài toán thực tế nào anh nhỉ? Với hệ thống ERP doanh nghiệp khoảng 100 user có ổn không? Cảm ơn anh

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому +1

      hệ thống mà nhỏ thì dùng loại nào cũng được anh em nhé

    • @bongakinhien2340
      @bongakinhien2340 Місяць тому

      @@tranquochuywecommit Vậy Postgre sẽ không ổn nếu số lượng concurrent user từ bao nhiêu trở lên ạ. Hệ thống ERP ạ

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      @@bongakinhien2340 xem kỹ phần PostgreSQL và MySQL phù hợp cái nào ở trong video nhé anh em.

  • @ThangNguyen-ic4ej
    @ThangNguyen-ic4ej Місяць тому +1

    Hmm nếu thế trong MySQL, khi có 2 người cùng update mà chưa commit, vd như em update "Huy -> 1800", anh update "Huy -> 1500" thì lúc đó bảng sẽ lưu trữ cả 2 update mà chưa commit này như thế nào ạ?

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому +2

      2 ông cùng update 1 bản ghi đúng không em.
      Trường hợp đấy thì database sẽ sử dụng cơ chế LOCK.
      Người đầu tiên gõ lệnh UPDATE thì sẽ được thực hiện, ông thứ 2 thì bị LOCK, phải chờ ông đầu tiên update xong (commit hoặc rollback) thì mới được làm tiếp

    • @ThangNguyen-ic4ej
      @ThangNguyen-ic4ej Місяць тому

      Up@@tranquochuywecommit Với nếu thế thì rất dễ xảy ra deadlock. Vd như có 2 câu lệnh Update của 2 người khác nhau:
      - Transaction 1:
      "Update bản ghi 1
      Update bản ghi 2"
      - Transaction 2:
      "Update bản ghi 2
      Update bản ghi 1"
      Trường hợp nhiều CCU thì có khả năng ô thứ 1 get dc lock của bản ghi 1, và ô thứ 2 get dc lock của bản ghi 2. Nếu thế thì deadlock xảy ra r mà nhỉ?

    • @HoanDuongVan-kd7ct
      @HoanDuongVan-kd7ct Місяць тому

      Đấy cũng là yếu điểm của bọn này so với oracle phải k anh :))

  • @ngocvananhly8305
    @ngocvananhly8305 Місяць тому

    Nghe kinh thanh sach a mốt

  • @Thit-Rang-Chay-Canh
    @Thit-Rang-Chay-Canh Місяць тому

    Dùng cho các hệ thống monitor như Zabbix thì dùng loại nào sẽ phù hợp hơn vậy ae?

    • @dangkiena3
      @dangkiena3 Місяць тому +1

      Postgresql timescaleDB

    • @Thit-Rang-Chay-Canh
      @Thit-Rang-Chay-Canh Місяць тому

      @@dangkiena3 Mới đọc keyword thôi đã thấy sáng rồi, tks bạn!

  • @futhedude4848
    @futhedude4848 Місяць тому

    video start: 1:10

  • @thanhnamdev8277
    @thanhnamdev8277 17 днів тому +1

    chạy 1 query là thế mạnh của thằng này thì thằng kia chẳng yếu thế hơn, dùng 1 query để chứng minh thằng kia không viết lại query thì chịu rồi =))

  • @hongchungnguyen9254
    @hongchungnguyen9254 Місяць тому

    Cơ chế này có đại diện cho sql và nosql ko anh

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      mỗi loại database sẽ có các cơ chế riêng.
      Oracle, MySQL, PostgreSQL, SQL Server tuy là cùng RDBMS nhưng mỗi loại nó có các kiến trúc sẽ khác nhau đôi chút.
      NoSQL thì cũng phải xét kiến trúc riêng anh em ạ

  • @phuccom3296
    @phuccom3296 Місяць тому

    anh làm về oracle đi anh

  • @grabtv4211
    @grabtv4211 Місяць тому

    A dùng phần mềm gì vẽ đẹp thế ạ ?

  • @nguyenchitrung5955
    @nguyenchitrung5955 Місяць тому

    anh Huy làm so sánh giữa sql và nosql đi ạ

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      nosql em thích chọn database nào? Mongodb nhé?

    • @nguyenchitrung5955
      @nguyenchitrung5955 Місяць тому

      @@tranquochuywecommit ok ạ, à em hỏi thêm là em muốn tìm hiểu sâu hơn về index (sâu như video anh chia sẻ thì tham gia khóa 100x là có anh nhỉ)

  • @thoanguyenthi7135
    @thoanguyenthi7135 14 днів тому

    Các bạn tải cao cùng làm xao luong khác nhau các bạn

  • @hoangbon2806
    @hoangbon2806 Місяць тому

    sao nhóm vote làm về SQL vs Oracle rồi sao lại làm video này trước vậy sếp?

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      Kết quả theo số đông người chọn anh em ah.
      Vote trên nhiều nhóm + UA-cam tab cộng đồng.
      Anh em xem trên tab cộng đồng youtube sẽ thấy đa số anh em chọn PostgreSQL vs MySQL.
      Video sau mình có làm về Oracle vs SQL Server đấy

  • @vuleanh7647
    @vuleanh7647 Місяць тому

    Fan cứng của a 😆

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      tuyệt vời, cảm ơn người anh em đã ủng hộ nhé

    • @vuleanh7647
      @vuleanh7647 Місяць тому

      @@tranquochuywecommit hi anh, theo em biết thì Postgre không có kiến trúc primary index như SQL server mà mọi index đều là secondary index luôn ạ, nên mỗi index có CTID riêng

  • @trandungguitar3796
    @trandungguitar3796 Місяць тому

    Ông qua bên thuế làm csdl giúp cái, chứ nhiều ng tồn tại 2 mst mà lâu mới phát hiện ra

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      tôi quen anh em quản lý cơ sở dữ liệu bên đấy đấy, anh em có cần tôi kết nối cho không :))

  • @huythai6250
    @huythai6250 Місяць тому

    Anh có thể làm thêm về Cassandra được không ạ?

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      để anh làm khảo sát xem nhiều anh em cộng đồng cần không, có nhiều thứ muốn làm nên anh sẽ ưu tiên các nội dung nhiều người cần em nhé

    • @huythai6250
      @huythai6250 Місяць тому

      @@tranquochuywecommit dạ cảm ơn anh đã dành thời gian cân nhắc ạ.

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      @huythai6250 anh vẫn xem tất cả chia sẻ của anh em mà. Cảm ơn anh em vì đã ủng hộ kênh này nhé

    • @huythai6250
      @huythai6250 Місяць тому

      @@tranquochuywecommit dạ, rất cần nhiều hơn những người có tầm như anh chia sẻ kinh nghiệm ạ 🥰, cảm ơn những chia sẻ của anh rất nhiều

  • @ichngohuy8775
    @ichngohuy8775 19 днів тому

    Không biết a có chuyên đề về Oracle?

  • @AnhemtaoMacao
    @AnhemtaoMacao Місяць тому

    sinh viên năm 3 xem có sớm quá không ^^

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому +1

      anh có những anh em năm 3 đã tham gia chiến đấu rồi.
      Làm công nghệ không có gì làm sớm nếu tăng công lực cả em ạ.
      Càng biết sớm càng ngon thôi.

  • @oneprofun
    @oneprofun Місяць тому

    mariadb cười nhẹ :)) lúc nào select * không điều kiện và ra hàng nghìn rows thậm chí hàng chục nghìn rows ấy thì lúc đó mới biết ai hơn ai.

    • @minhnguyenba7905
      @minhnguyenba7905 16 днів тому

      Giải thích kỹ hơn được không bạn

  • @xuanthangpham486
    @xuanthangpham486 Місяць тому

    So sánh với sql server luôn a

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      em thích postges vs sql server hay mysql vs sql server

    • @duynguyenminh1257
      @duynguyenminh1257 Місяць тому

      @@tranquochuywecommit SQL server với Oracle đi a

    • @minhlh6073
      @minhlh6073 Місяць тому

      @@tranquochuywecommit Cả 2 luôn đi anh, thêm 2 video nữa coi cho hiểu sâu hơn😆

    • @xuanthangpham486
      @xuanthangpham486 Місяць тому

      Cả 2 luôn đi anh

  • @Huynguyen-ew1ep
    @Huynguyen-ew1ep Місяць тому

    Video có tiếng cạch cạch khá khó chịu đó anh

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      cảm ơn em đã góp ý, anh sẽ để ý điều chỉnh đợt video tới nhé

  • @mychannel-fo4fv
    @mychannel-fo4fv Місяць тому

    nice a

  • @chungtran2059
    @chungtran2059 Місяць тому

    "My SQL, SQL" tôi nghĩ nên phát âm chính xác hơn

    • @tranquochuywecommit
      @tranquochuywecommit  Місяць тому

      cảm ơn người anh em đã bỏ qua phần phát âm để ủng hộ nội dung video nhé

    • @n4.nguyenmanhcuong8
      @n4.nguyenmanhcuong8 Місяць тому

      Mình nghĩ là ko cần thiết. Mình thấy phát âm như vậy dễ nghe hơn

    • @Phamviet008
      @Phamviet008 Місяць тому

      @@n4.nguyenmanhcuong8làm tech mà nói sai tên công nghệ thì hơi buồn cười ấy

    • @n4.nguyenmanhcuong8
      @n4.nguyenmanhcuong8 Місяць тому +1

      @@Phamviet008 Chả có gì buồn cười cả bạn ạ. Chúng ta là người Việt, đều nói tiếng Việt, video cũng dành cho người Việt. Mấy cái đấy nói lái sang tiếng Việt cho dễ nghe thì không có vấn đề gì cả bạn ạ.
      giống như bạn nói tiếng Anh với người nước ngoài thì ví dụ tên người. bạn sẽ đọc rõ chữ "Cường", hay sẽ nói lái sang là "Cuong" ?