Тёмный

MySQL nhiệm vụ tối ưu hóa bảng Orders với hàng chục triệu dữ liệu mỗi THÁNG trong eCommerce ShopDEV 

Tips Javascript
Подписаться 41 тыс.
Просмотров 13 тыс.
50% 1

MySQL tối ưu hóa bảng Orders với hàng chục triệu dữ liệu mỗi THÁNG trong eCommerce ShopDEV..
Video nằm trong Series "Nodejs Backend eCommerce". Bạn có muốn tìm hiểu một hệ thống eCommerce được thiết kế từ a-z từ local đến amazon thì xin mời vào LINK dưới này.
👉 Link khóa học backend Nodejs: / @anonystick
🚩 Subscribe ➜ / tipsjavascript
#eccommerce #mysql #database
✅ Follow Me:
Blog: anonystick.com
Github: github.com/anonystick/anonystick
Facebook: / tipjs
RU-vid: / tipsjavascript

Опубликовано:

 

1 ноя 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 47   
@user-gl4qq5ub4t
@user-gl4qq5ub4t 8 месяцев назад
:)) Tuyệt vời ạ, chúc anh nhiều sức khỏe và ra thêm nhiều videos.
@manhuc4259
@manhuc4259 9 месяцев назад
Đáng để mong đợi
@randynguyen1909
@randynguyen1909 9 месяцев назад
chất lượng quá thầy ơi
@ThieuLongTrong-ec7gr
@ThieuLongTrong-ec7gr 3 месяца назад
Cảm ơn thầy chia sẻ kiến thức bổ ích
@ThangPham-pz8ug
@ThangPham-pz8ug 8 месяцев назад
muốn like video của anh vì sự tâm huyết truyền đạt tận tình này nhưng em lại ích kỉ chỉ muốn giữ cho riêng mình 🐧
@anonystick
@anonystick 8 месяцев назад
Bậy nha Cưng... Lan tỏa lên... Video kế tiếp trong hội viên mới đỉnh thực sự..
@chinhnguyenvan5982
@chinhnguyenvan5982 9 месяцев назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-aY8SiBuFLPw.html Theo mình tìm hiểu thì partition có làm tăng tốc độ truy vấn khi mình biết cách sử dụng. Chứ không phải là sai lầm như trong video nói. Ví dụ với các data qua nhiều năm và chúng ta chia partition theo tháng, thì mỗi khi query chúng ta sẽ chỉ định thẳng đến 1-2 tháng gần đây nhất (hiện tại), nếu không tìm thấy thì mới quét all. Thông thường những data cần thiết trong câu query thường là những data mới, nên việc chỉ định partition trong những tháng gần đây thay vì cả bảng lớn sẽ mang hiệu quả cao. Tất nhiên còn tùy thuộc vào bài toán để chúng ta chia partition cho hợp lý để mang lại tối ưu cho các truy vấn với tần suất cao
@HungHoang-dm4qw
@HungHoang-dm4qw 9 месяцев назад
Tăng tốc độ thì bạn sẽ thấy hiệu quả trong những bảng có dữ liệu lớn thôi, đặc biệt với các dữ liệu báo cáo, với dữ liệu bình thường thì index đã đủ nhanh rồi.
@chinhnguyenvan5982
@chinhnguyenvan5982 9 месяцев назад
@@HungHoang-dm4qw mình không bàn đến câu chuyện index ở đây, Mình chỉ focus vào ý này thôi: "Theo mình tìm hiểu thì partition có làm tăng tốc độ truy vấn khi mình biết cách sử dụng. Chứ không phải là sai lầm như trong video nói"
@anonystick
@anonystick 9 месяцев назад
Tks bro đã góp ý kiến. Thực ra các kiến trúc lớn hiện nay đã không còn sử dụng cách này để tối ưu. Vì nó có quá nhiều nhược điểm, tôi không thể liệt kê hết các trường hợp mà chúng tôi gặp rắc rối với nó. Nhưng có thể tôi ghi ra hai điểm sau đây. Một số nhược điểm của bảng phân vùng khó chấp nhận đối với doanh nghiệp có lượng dữ liệu lớn và tính đồng thời cao mà chúng tôi gặp... (1) Nếu SQL không sử dụng khóa phân vùng, việc khóa toàn bộ bảng sẽ dễ dàng xảy ra (2) Việc thực hiện các truy vấn liên quan trong bảng phân vùng là một thảm họa ... Vì vậy chúng tôi đã có một cách khác và đã khắc phục được một số nhược điểm này.
@chinhnguyenvan5982
@chinhnguyenvan5982 9 месяцев назад
@@anonystick ad đã hiểu nhầm ý mình, ý mình ở đây là ad đưa ra ý kiến: "partition không làm tăng perf của truy vấn", thì mình chỉ đưa ra ý kiến phản bác về vấn đề này thôi. còn partition sẽ không được áp dụng cho đa số các trường hợp thì mình hoàn toàn đồng ý với ad.
@middmoon
@middmoon 9 месяцев назад
Thầy có thể làm 1 video lúc nào thì mình nên sử dụng bất động bộ được không ạ? Bắt đầu xem Thầy cách đây 2 tháng thật sự rất nhiều kiến thức bổ ích cho người mới như em.
@anonystick
@anonystick 9 месяцев назад
Có một cách tuyệt hơn nữa...
@middmoon
@middmoon 8 месяцев назад
rất mong một ngày được xem Thầy chia sẻ về những kiến thức đó ạ.
@yuky2020
@yuky2020 8 месяцев назад
Phần nào của video khi nào có thế ạ 😁
@achillesle3995
@achillesle3995 9 месяцев назад
Tuyệt vời 😃
@anonystick
@anonystick 8 месяцев назад
Tks!
@kysomaio7207
@kysomaio7207 7 месяцев назад
tại sao trong bảng có chứa khoá ngoại thì không thể phân vùng partition cho 1 cột khác được vậy anh ???
@kiettrantuan1573
@kiettrantuan1573 3 месяца назад
Anh cho em hỏi 1 chút. Em thử áp dụng thì e gặp 1 vấn đề đó là bảng cũ hiện tại đang sử dụng khóa chính là id auto increment . Partition bắt buộc khóa của nó phải là khóa chính và sau khi cho khóa chính là Id và created_date thì cột id không thể set auto increment được nữa, Mong a giải đáp thắc mắt . Em cảm ơn
@nhantran-jf8st
@nhantran-jf8st 9 месяцев назад
Dạ chào thầy, rất khâm phục a đã cống hiến. Cho e xin hỏi mình có 1 series nào làm về tối ưu db không a, và những kinh nghiệm của a khi design schema sql
@anonystick
@anonystick 9 месяцев назад
Em xem mongodb và mysql có hết nha em. Trên kênh á
@uclong1176
@uclong1176 8 месяцев назад
1:03 500.000 * 30 = 15.000.000 anh ơi
@duyngo8608
@duyngo8608 9 месяцев назад
Anh có thể chia sẽ cách đánh index hoặc sửa cột cho bảng dữ liệu to đc ko ạ ?
@anonystick
@anonystick 9 месяцев назад
Video này đúng yêu cầu em không? Section 60: Index MySQL những sai lầm nên tránh ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-GSonUVsFFJ8.html
@cuongnguyenhuu2836
@cuongnguyenhuu2836 9 месяцев назад
dùng sharding thì sao ạ
@NguyenMinh-gl7qz
@NguyenMinh-gl7qz 3 месяца назад
Tóm gọn lại là oánh partition đi các pạn 😆
@ThoBui-qk4yq
@ThoBui-qk4yq 8 месяцев назад
Trong sql có cơ chế onDelete , onUpdate khá hay, a có thể hướng dẫn hay có best practice nào cho mongodb trong trường hợp này được không ạ?
@SonNguyen-po2hr
@SonNguyen-po2hr 8 месяцев назад
vì Mongo và MySQL khác nhau từ cách để dùng mà bạn :v Như mình thấy thì vì Mongo sử dụng CSDL theo kiểu collections thay vì tables như MySQL nên Mongo không có constraint như bên mysql được. Vậy nên constraint bạn phải xử lí bằng code
@vietvovan2003
@vietvovan2003 9 месяцев назад
Em có một số câu hỏi là: 1. Nếu chia theo từng năm thì mình không thể mỗi năm lại vào db chia vùng được thì có cách nào để trừu tượng cái chia vùng tự động theo từng năm mà không cần phải mỗi năm chia vùng mới. 2.Khi select thường được dùng kèm filter và người ta sẽ không biết được khi nào nên search all và khi nào nên search theo partition ?
@anonystick
@anonystick 9 месяцев назад
Câu hỏi quá hay... Em thuộc video này...chúc mừng em đã lên level DBA | Phần 2 này sẽ tự động hoá thêm bảng tuỳ thời gian tương ứng ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-eEt3yuz3S_I.html
@duonghoai4795
@duonghoai4795 9 месяцев назад
anh ơi dự án bên em đang dùng mongodb lưu tất cả các order vào 1 bảng dữ liệu dạo này dữ liệu đang tăng dần lên có cách nào cải thiện không ạ em đang muốn partition theo branchId.
@anonystick
@anonystick 9 месяцев назад
Đã có video về chủ để này trên kênh. Em có thể tham khảo lại hen.
@minhthaonguyen6524
@minhthaonguyen6524 9 месяцев назад
Anh ơi cho em hỏi video này là video số mấy trong Nodejs Backend eCommerce của hội viên vậy
@anonystick
@anonystick 9 месяцев назад
Section 57 nha em
@atNguyen-sk9sw
@atNguyen-sk9sw 9 месяцев назад
Mình không phải dân DBA nhưng đang nghiên cứu 1 app liên quan tới lịch sử cuộc gọi. 1 ngày phát sinh đâu đó cỡ 1 triệu bản ghi. Điều kiện lọc thường là trong 1 tháng thì theo Ad nên paritition theo ngày hay tháng?.
@anonystick
@anonystick 8 месяцев назад
Tự động mỗi tuần tạo ra một table... Auto... Đã làm xong trong hội viên.
@trunghieutran8319
@trunghieutran8319 8 месяцев назад
dữ liệu 1 triệu bản ghi 1 ngày thì bạn không nên dùng mysql, có thể tìm hiểu các cơ chế lưu trữ khác: HBase, Hive, Casandra, Druid, ... có khả năng sẽ đạt hiệu quả cao hơn.
@atNguyen-sk9sw
@atNguyen-sk9sw 8 месяцев назад
@@trunghieutran8319 thanks bác. Project lunch rồi nên đổi db hơi khó bác ạ. Nên minh đang tìm hướng khắc phục trong thời gian ngắn. Còn về lâu dài chắc phảo nghiên cứu ý kiến của bavs
@thevinhnguyen1459
@thevinhnguyen1459 9 месяцев назад
Em chào Thầy ạ, Thầy ơi em muốn xem video 55 (insert data test 10000000) nhưng em lại không tìm thấy trên kênh của Thầy ạ.
@anonystick
@anonystick 9 месяцев назад
Hội viên em ơi. Anh trích video hội viên ra á
@thevinhnguyen1459
@thevinhnguyen1459 9 месяцев назад
Dạ, em vừa tham gia rùi ạ hihi@@anonystick
@anonystick
@anonystick 9 месяцев назад
Tks em. Đấy nhanh tốc độ, chứ tới phần triển khai BE trên AWS rồi
@tqt97
@tqt97 9 месяцев назад
sao em đăng ký hội viên nó đã trừ tiền rồi nhưng xoay xoay mãi không thành công, có ai gặp trường hợp giống em k ạ
@anonystick
@anonystick 9 месяцев назад
failed, RU-vid sẽ hoàn lại á em nha.
@tqt97
@tqt97 9 месяцев назад
dạ tks a@@anonystick . e đang đki lại mà vẫn vậy, kb có phải do youtube không
@NhanNguyen_dra
@NhanNguyen_dra 8 месяцев назад
Trong video của anh này thì lại cho rằng có thể sử dụng Partition để tối ưu cho các bảng lớn, ae có ý kiến gì ko. Which right :( ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-TkRToWbEbEE.html
@phamthehung6214
@phamthehung6214 7 месяцев назад
Dùng partition là đúng rồi, nó sinh ra để làm việc tối ưu truy vấn trên 1 bảng quá lớn khi mà việc đánh index không cải thiện được. Có điều, dùng partition có đủ để đáp ứng yêu cầu đặt ra ko thôi.
Далее