Select 1 cột và Select * - bất ngờ về kết quả so sánh hiệu năng | Tối ưu SQL | SQL Tutorial

Поділитися
Вставка
  • Опубліковано 8 вер 2024
  • #postgresql #postgresqltutorial #postgres
    Mục tiêu: Tôi nhận được nhiều câu hỏi về vấn đề select 1 cột và select * thì có khác nhau về hiệu năng thực thi câu lệnh hay không, trong video này anh em cùng nhau giải đáp và demo thực tế nhé
    Ghi chú: Nếu bạn là một lập trình viên và muốn phát triển sự nghiệp một cách nhanh chóng hơn. Tôi có một khoá học có thể giúp bạn phát triển rất nhanh (cả về CHIỀU RỘNG và CHIỀU SÂU), tại khoá học này bạn sẽ được chia sẻ tất cả những kinh nghiệm và kiến thức của tôi đã tích luỹ trong hơn 10 năm trực tiếp điều hành Wecommit - công ty chuyên tư vấn và tối ưu các cơ sở dữ liệu và hệ thống lớn.
    Xem chi tiết khoá học của tôi ở đây: wecommit.com.v...
    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.v...
    🎯 Một số Video khác bạn có thể xem:
    - Quy trình 6 bước phải biết khi tối ưu câu lệnh SQL: • Quy trình 6 bước buộc ...
    - 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...
    - Hiểu kiến trúc của cơ sở dữ liệu Oracle trong 20 phút: • Hiểu Oracle Database t...
    📱 Nếu bạn muốn liên hệ với tôi:
    Zalo: 0888549190
    Linkedin: / huytq
    Facebook: / tranquochuy.toiuu
    🌐 Nguồn tài liệu: Tôi tổng hợp từ các kiến thức và kinh nghiệm của bản thân trong hơn 10 năm làm các dự án tối ưu cơ sở dữ liệu.
    #toiuu100x #tranquochuy #wecommit #databasedesign #databaseperformance #databasetutorial #toiuucosodulieu #thietkecosodulieu #toiuusql

КОМЕНТАРІ • 94

  • @tranquochuywecommit
    @tranquochuywecommit  Рік тому +7

    Tôi có 1 chương trình sẽ khiến anh em DEV trở nên KHÁC BIỆT nhờ năng lực và tư duy tối ưu SQL, tối ưu Database. Đây là chương trình có phí, do tôi trực tiếp thiết kế và truyền lại toàn bộ kinh nghiệm của bản thân mình. Các bạn quan tâm có thể xem chương trình "Từ điển tối ưu 100x hiệu năng" này tại đây: wecommit.com.vn/tu-dien-toi-uu-100x-hieu-nang/

  • @tranquochuywecommit
    @tranquochuywecommit  Рік тому +5

    Nếu các anh em thấy thấy video có giá trị, hãy like video để mình có thêm động lực và tiếp tục hành trình chia sẻ các nội dung mới nhé.

  • @reviewnganhhoc1942
    @reviewnganhhoc1942 Рік тому +3

    những video của anh rất thực tế và đầy kiến thức, mong anh sẽ ra thêm nhiều video nữa cho cộng đồng. Một kệnh cực hay về Database

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому

      Cảm ơn những năng lượng tích cực từ comment của anh em.

  • @mgo730
    @mgo730 Рік тому +4

    Bài chia sẻ hay và rất bổ ích. Mong anh có thể chia sẻ nhiều hơn cho cộng đồng.😍

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому

      Cảm ơn anh em. Những bình luận tích cực và tình cảm của anh em là động lực và năng lượng cho tôi tiếp tục hành trình chia sẻ.

  • @viettiennguyen633
    @viettiennguyen633 Рік тому +2

    Bổ ích quá anh ơi, những kiến thức sharing của anh rất thưc tế, có giá trị và mang tính ứng dung cao ạ .

  • @diepngo1472
    @diepngo1472 6 місяців тому

    cám ơn anh vì những kiến thức hữu ích, giờ mới hiểu bản chất của việc Select 1 cột và Select * là phụ thuộc vào cách viết index cho các field ( select hay where ,...) và chiến lược thực thi.

    • @tranquochuywecommit
      @tranquochuywecommit  6 місяців тому

      có rất nhiều video phân tích khác trong kênh, em có thể xem thêm để biết nhiều khía cạnh khác nữa em nhé.
      Chúc em thu được nhiều giá trị hữu ích cho bản thân mình.

  • @J2TeamNNL
    @J2TeamNNL Рік тому +3

    Cảm ơn anh rất nhiều về kiến thức đã chia sẻ ạ

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

    Hay qua! Cam on anh

  • @luonguct
    @luonguct 2 місяці тому

    Cảm ơn bạn! Bài giảng rất hay vì chi tiết. Qua Video bạn đã chỉ ra muốn giảm chi phí thì phải tạo Index. Mình có câu hỏi này mong bạn giải thích thêm: Điều gì xảy ra nếu ta tạo Index cho tất cả các bảng?

    • @huyennguyenvan8094
      @huyennguyenvan8094 2 місяці тому +1

      Em nghĩ trên trường hợp thực tế rất ít case study mà index cho tất cả các trường trong tất cả các bảng, nếu có thật thì khó tồi

  • @nguyenhoang713
    @nguyenhoang713 6 місяців тому +1

    Bai chia se rat huu ich. Cam on anh!

  • @mran7391
    @mran7391 Рік тому

    Hay quá anh ơi, em đang chơi vs postgresql mấy năm nay rồi mà amateur quá, giờ cho anh chia sẻ thông tin thì quá tuyệt vời. Chúc anh thành công vs dự định này

  • @xuanhopo1287
    @xuanhopo1287 5 місяців тому

    xịn đét. giờ mới xem được :v từ giờ thiết kế DB sẽ chăm đánh index hơn :v thanks anh ạ

  • @relax7643
    @relax7643 10 місяців тому

    Rất hay, mong a có 1 series đầy đủ về DB và so sánh các loại DB vs nhau để ae học hỏi ❤

  • @tanmao5931
    @tanmao5931 Рік тому

    Cảm ơn anh, đã chia sẻ những kiến thức rất chi tiết và hữu ích về bản chất khi thực thi câu lệnh sql! 🎉

  • @thienngo2953
    @thienngo2953 2 місяці тому

    Chia sẻ rất bổ ích. Cám ơn anh

  • @nghiatranthanh3806
    @nghiatranthanh3806 8 місяців тому

    Các bài rất hữu ích. Cảm ơn thầy Huy nhé

  • @quoctoancao4936
    @quoctoancao4936 Рік тому

    Cảm ơn Thầy Huy, bài chia sẻ của Thầy rất hay và ý nghĩa

  • @hungle-yk3cj
    @hungle-yk3cj 8 місяців тому

    cảm ơn anh. Giờ mới hiểu ý nghĩa Select *

  • @lyminhhoang1319
    @lyminhhoang1319 Рік тому +1

    quá hay anh ạ, mong anh ra thêm video về phần này

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому

      Anh em đăng ký kênh nhé, mình sẽ còn tiếp tục chia sẻ nhiều nội dung trong thời gian tới.

  • @thangnguyenquyet3340
    @thangnguyenquyet3340 7 місяців тому

    Cộng đồng cảm ơn anh rất nhiều ạ

    • @tranquochuywecommit
      @tranquochuywecommit  6 місяців тому

      cảm ơn anh em đã ủng hộ kênh của mình.
      Về tối ưu db thì trên kênh có nhiều video áp dụng luôn vào thực tế, anh em có thể xem cùng, bổ trợ thêm cho video này anh em nhé

  • @taitrinh62_
    @taitrinh62_ 5 місяців тому

    *_Cám ơn thầy đã chia sẻ ạ_*

  • @longnguyenvan8405
    @longnguyenvan8405 Рік тому

    Cảm ơn anh Huy giúp em hiểu ra được nhiều điều

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому

      Những bình luận như thế này là động lực giúp anh tiếp tục chia sẻ các kiến thức và kinh nghiệm của mình. Cảm ơn em vì điều ấy.

  • @taitrinh62_
    @taitrinh62_ 5 місяців тому

    *_Công nhận thầy dùng mic dễ nghe hơn, không bị ồn ạ_*

  • @BaoNguyen-rh4fi
    @BaoNguyen-rh4fi 3 місяці тому

    Cảm ơn anh. Hay quá ạ

    • @tranquochuywecommit
      @tranquochuywecommit  3 місяці тому

      anh có 1 video full về PostgreSQL trên kênh này đấy, em có thể xem để có nhiều thứ chi tiết và bổ trợ cho video này nhé

  • @huychu6711
    @huychu6711 Рік тому +1

    video hay quá anh ơi!

  • @quangphongtran3558
    @quangphongtran3558 Рік тому +1

    Quá hay!

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому

      Anh em like video để mình thêm động lực nhé. Cảm ơn anh em nhiều.

  • @trieutruong2410
    @trieutruong2410 Рік тому

    cảm ơn anh Huy rất nhiều.

  • @VuvaToniKroos
    @VuvaToniKroos 11 місяців тому

    Cảm ơn anh, chúc anh nhiều sức khỏe

  • @phamduy5287
    @phamduy5287 Рік тому +1

    quá hay luôn

  • @TP-kj2sm
    @TP-kj2sm Рік тому +2

    Theo mình hiểu thì SELECT thừa cột tuy có cùng cost, nhưng vừa tốn RAM để lưu trữ dữ liệu thừa, lại vừa tốn thời gian đọc những cột thừa từ ổ cứng. Vừa mất thời gian, vừa mất dung lượng, nên hạn chế tối đa việc SELECT *

    • @nthungsol
      @nthungsol Рік тому

      Đúng rùi, cost để query là như nhau nhưng thừa cột thì sẽ tốn ram chưa kể với remote db thì payload để transfer data cũng lớn hơn nên trễ hơn

    • @workwithme23
      @workwithme23 7 місяців тому

      thực tế thì chắc là chẳng bao giờ dùng select * trong product đâu bác

  • @ezMagic
    @ezMagic Рік тому

    Ủng hộ a chia sẻ kiến thức về postgresql nha anh

  • @Cikimelog
    @Cikimelog Рік тому +1

    Hay quá

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому +1

      Cảm ơn anh em. Dành tặng 1 like cho video này anh em nhá.

  • @vuduchong
    @vuduchong 2 місяці тому

    giờ mới hiểu vấn đề mà lâu nay tưởng đúng

  • @anhdungnguyen6507
    @anhdungnguyen6507 8 місяців тому

    quá hay anh

  • @inhngocnguyen7184
    @inhngocnguyen7184 Рік тому

    cảm ơn anh, video rất hay ạ

  • @ThuyNguyen-tu6gz
    @ThuyNguyen-tu6gz Рік тому

    kiến thức quá là cơ bản

  • @DinhHoangBaoChau
    @DinhHoangBaoChau 5 місяців тому

    Bài chia sẻ rất ý nghĩa, cảm ơn Thầy. Thầy cho em hỏi chút là lúc trước thầy làm về mảng web hay thuần về data thôi ạ?

  • @luck8citygod
    @luck8citygod 10 місяців тому

    Hay quá a

  • @anhthangbui8707
    @anhthangbui8707 4 місяці тому

    Em cảm ơn anh đã chia sẻ kiến thức rất hữu ích.
    Em có 1 thắc mắc mong được anh chỉ bảo.
    Trong video của anh có 2 câu query ứng với 2 cost như sau:
    explain select * from payment
    seq scan on payment ( cost = 0.00 253.96..)
    explain select * from payment where amout = 1.99
    seq scan on payment ( cost = 0.00 290.45..)
    như vậy có thể nói là câu query không điều kiện where sẽ nhanh
    hơn câu query có điều kiện where. ( vì 253.96 < 290.45)
    tuy nhiên trong thực thế làm việc thì với csdl lớn
    khi query có điều kiện where sẽ nhanh hơn rất nhiều. ( từ khi thực thi đến khi hiển thị data sẽ nhanh hơn)
    anh có thể chỉ giúp em nguyên nhân được không ạ?
    em xin cảm ơn.

  • @vanthuannguyen8984
    @vanthuannguyen8984 Рік тому

    Cảm ơn anh ạ

  • @datdao3104
    @datdao3104 4 місяці тому

    good job man

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

    Anh ơi nếu đối với bảng lưu trữ dạng cột như parquet thì sao ạ?

  • @toanmacvan9916
    @toanmacvan9916 Рік тому +1

    Như vậy thì nếu xét về chiến thuật thực thi thì lấy 1 cột hay nhiều cột cũng như nhau(trường hợp select có cả cột không index và where), nhưng về mặt thời gian thì 1 cột sẽ nhanh hơn nhiêu.

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому

      đúng rồi em, việc này chiến lược thực thi như nhau đồng nghĩa với mức độ ảnh hưởng hiệu năng là tương đương. Còn thời gian trả ra bị ảnh hưởng bởi dung lượng dữ liệu + băng thông em nhé.

    • @toanmacvan9916
      @toanmacvan9916 Рік тому

      @@tranquochuywecommit PM bên e chỉ quan thời gian thôi :( còn lại không care gì hết.... e chả biết phải giải thích sao hic

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому

      uh, hôm nào để anh chia sẻ về bản chất tối ưu cho bên em, rủ cả bác PM tham dự em nhé

    • @toanmacvan9916
      @toanmacvan9916 Рік тому

      ​@@tranquochuywecommitoke anh iu

  • @Tony-pq4ng
    @Tony-pq4ng Місяць тому

    có ai biết kênh youtube nào dạy web chất lượng như kênh này dạy database không ạ?

  • @ICOReviewtoken
    @ICOReviewtoken Рік тому

    Hóng serries postgresql của sếp

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

    Cơ chế này chỉ áp dụng cho Postgresql hay cho cả MySQL, Oracle luôn ạ?

  • @cuongnd288
    @cuongnd288 Рік тому

    Quá hay

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому

      Cảm ơn anh em. Hãy like video để mình có thêm động lực nhé.

  • @phanvantai2521
    @phanvantai2521 Рік тому +1

    Cho em hỏi, các kiến thức ở trên anh chia sẻ nó có phụ thuộc vào DBMS không ạ, hay DBMS nào cũng sử dụng các kĩ thuật anh vừa chi sẻ.

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому +2

      Kiến thức mình chia sẻ là bản chất nên đúng với các loại RDBMS (Oracle, PostgreSQL, SQL Server, MySQL...). Các database khác nhau chỉ sử dụng các thuật ngữ khác nhau về chiến lược thực thi thôi (Ví dụ: Seq Scan trong PostgreSQL thì giống như Full Table Scan trong Oracle).
      Cứ tự tin áp dụng đối với RDBMS của bạn nhé.

    • @phanvantai2521
      @phanvantai2521 Рік тому

      @@tranquochuywecommit cảm ơn anh vì video hữu ích này

  • @cuongnd288
    @cuongnd288 Рік тому

    Mong a chia sẻ về postgresql

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому

      Okie anh em, anh em đăng ký kênh để nhận thông báo ngay khi có nội dung này nhé.

  • @guytech9502
    @guytech9502 Рік тому

    18:50 Dự định về chia sẻ kiến thức PostgreSQL -> Like -> Đặt gạch giữ chỗ nha @Huy

  • @thanhonguyen5268
    @thanhonguyen5268 4 місяці тому

    scan row có phải là nó scan qua từng column name đúng ko a

  • @ThinhNguyen-zu1jj
    @ThinhNguyen-zu1jj 7 місяців тому

    Hay quá ạ, a ơi, bên mongo db nó có như thực hiện như bên sql không a?

    • @tranquochuywecommit
      @tranquochuywecommit  7 місяців тому

      chiến lược thực thi là nguyên lý chung của các loại database anh em nhé

  • @phungucanh3330
    @phungucanh3330 Рік тому

    quá hay anh ạ

  • @numet2
    @numet2 7 місяців тому

    anh cho e hỏi, thế thì table có bao nhiêu column cần thiết thì mình đánh index hết thì nó ảnh hưởng gì ko anh? Cảm ơn anh

    • @tranquochuywecommit
      @tranquochuywecommit  7 місяців тому

      không làm như thế em ah, đánh index phải có chiến lược và nghệ thuât
      Nếu cứ có bao nhiêu cột mà đánh index hết luôn thì lại thành dở ngay, đặc biệt trong các hệ thống OLTP.
      Bản chất là phải chọn được số cột ít nhất có thể nhưng manh lại hiệu quả chiến lược thực thi tốt nhất.

  • @binan6655
    @binan6655 Рік тому +1

  • @hieubuict96
    @hieubuict96 7 місяців тому

    Anh cho em hỏi tool nào hỗ trợ xem hiệu năng như thế với ạ. Em dùng explain sql nhưng không ra được các thông số query plan ạ

    • @tranquochuywecommit
      @tranquochuywecommit  7 місяців тому

      tool thì anh em có thể dùng pgadmin4, dbeaver đều được
      Nếu dùng explain thì thêm explain analyze cũng được

    • @hieubuict96
      @hieubuict96 7 місяців тому

      @@tranquochuywecommit vâng em cảm ơn a nhé

  • @bathientran5357
    @bathientran5357 Рік тому

    Bạn đấy là csdl dwh xem nó khác ji không🤗 mình nghỉ bạn đang test với csdl transaction

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому

      database nào thì cũng có chiến lược thực thi và hoạt động là như nhau anh em nhé. Tại đây mình đang không tính tới thời gian trả kết quả ra, mà chỉ tính hiệu năng phân tích trên server.

  • @NguyenTrung-yn8tr
    @NguyenTrung-yn8tr 2 місяці тому

    ua-cam.com/video/LBMK4CV2VoE/v-deo.html
    Đoạn này a nhầm đúng không ạ ? cost = end_time - start_time chứ. Như trong video là cost = 25.36-21.34 mới đúng anh ?

  • @vansinhbui7933
    @vansinhbui7933 5 місяців тому

  • @Ninda-pn5ov
    @Ninda-pn5ov Рік тому

    Hay quá

    • @tranquochuywecommit
      @tranquochuywecommit  Рік тому

      Cảm ơn anh em đã ủng hộ nhé. Anh em đang làm việc với loại database nào thế?