Dùng Index để xử lý Lock đối với Table có Foreign Key | SQL Tutorial

  Рет қаралды 16,849

Learning Database with Tran Quoc Huy

Learning Database with Tran Quoc Huy

Күн бұрын

Пікірлер: 34
@tranquochuywecommit
@tranquochuywecommit Ай бұрын
Gửi mọi người Group Telegream Wecommit Public Community : www.wecommit.com.vn/wecommitcommunity ,anh em có thể trao đổi những câu hỏi , vấn đề khi xem Video và kết nối với tôi trong Group nhé (trường hợp click trực tiếp bị lỗi thì ae copy link ra browser nhé)
@sevenup139
@sevenup139 9 күн бұрын
sao em thử trên postgre đâu có bị lock đâu anh
@tranquochuywecommit
@tranquochuywecommit 9 күн бұрын
@@sevenup139 đúng rồi, postgres cơ chế hơi khác chút, em thử trên các database oracle, sql server sẽ thấy lock. Anh có 1 video chuyên về FK lock trên kênh đấy, xem video đó nhé
@tranttlc4645
@tranttlc4645 Жыл бұрын
Cái đoạn PK vs FK a ko nói rõ lắm. Chứ e thấy ít ai thiết kế db như thế nên rất hiếm gặp trường hợp bị treo như nêu trên.
@tranquochuywecommit
@tranquochuywecommit Жыл бұрын
Thực tế gặp nhiều đấy em. Em làm đủ nhiều dự án sẽ thấy. Anh cũng đang tối ưu cho các khách hàng gặp vấn đề này
@namtongdosa9626
@namtongdosa9626 Жыл бұрын
hình như index không tự động được tạo trên foreign key bạn ạ, hình như dùng InnoDB thì nó mới tự động tạo
@hungtuan3791
@hungtuan3791 Жыл бұрын
Anh có thể giải thích rõ hơn về việc tại sao trên bảng con không có index lại khiến bảng cha bị treo không ạ. Và bị treo cả bảng cha hay chỉ một vài row nhất định anh nhỉ ?. Em cảm ơn ạ
@tranquochuywecommit
@tranquochuywecommit Жыл бұрын
Em có thể lên xem bài viết lý giải chi tiết trên wecommit.com.vn nhé
@hungtuan3791
@hungtuan3791 Жыл бұрын
@@tranquochuywecommit sáng nay e có thử lại theo thì sau lần đầu xoá bảng con thì bảng cha sẽ bị block. Nhưng sau khoảng 30p e thử lại cũng xoá dữ liệu ở bảng con thì bảng cha lại k bị block nữa. Vấn đề này là do đâu anh nhỉ ?
@vihtago
@vihtago Жыл бұрын
Cho e hỏi sâu về cơ chế nó làm cái gì v ạ?
@tranquochuywecommit
@tranquochuywecommit Жыл бұрын
Các bài phân tích chuyên sâu hơn nữa, em có thể đọc ở dạng bài viết trên wecommit.com.vn nhé.
@namtongdosa9626
@namtongdosa9626 Жыл бұрын
Nếu bảng cha mình dùng DELETE CASCADE thì có bị treo (khi câu insert ở bảng con chưa commit/ rollback) không a?
@dbt1231
@dbt1231 4 ай бұрын
có ý kiến cho rằng, gần đây các developer đang có xu hướng drop ràng buộc foreign key khi thiết kế csdl, mục đích để tăng performance. bạn có nhận xét gì về ý kiến đó? thank bạn @TranQuocHuy
@hieuvuduc8840
@hieuvuduc8840 4 ай бұрын
Mình cũng chung câu hỏi vì dự án hiện tại sếp bên mình cũng đang yêu cầu k dùng foreign key. Mong được a Huy giải đáp
@tunamusic2314
@tunamusic2314 4 ай бұрын
thế sao join các bảng lấy data liên quan nhỉ
@hieuvuduc8840
@hieuvuduc8840 4 ай бұрын
@@tunamusic2314 sẽ lên service xử lý ấy bác ơi
@dbt1231
@dbt1231 4 ай бұрын
@@tunamusic2314 có hay không thì vẫn join được mà bạn. Ý mình ở đây là việc thiết lập foreign trong DB
@DatNickNganGonVaDeNho
@DatNickNganGonVaDeNho 4 ай бұрын
Foreign key sinh ra để thêm ràng buộc dữ liệu, đảm bảo nếu xảy ra update thì sẽ check constraint ở tầng db, thực tế khi dev bỏ constraint này đi thì sẽ lợi nhiều lợi ích, nhưng ở prod mà bỏ constraint đi thì sẽ có rủi ro rất lớn, phải handle toàn bộ các câu lệnh sql, và thường xử dụng ORM mới làm đc điều này ( protect đc bằng CASCADE ở hầu hết framework khi xây dựng ORM), quy mô dự án vừa và nhỏ thường đc xử dụng, nhưng khi lên prod thường sẽ thêm các constraint (foreign key, unique,…) vào. Vẫn là câu chuyện đánh đổi performance và consistancy, nếu nhắm handle đc thì bỏ, db đỡ phải check constraint, vì tầng BE chắc chắn đã validate trước khi update/delete. Thường những dự án lớn như banking sẽ có 1 đội DB riêng, chuyên cung cấp procedure cho BE. Còn lại thì BE sẽ tự handle toàn bộ constraint, ko apply constraint trên db.
@seapea2002
@seapea2002 Жыл бұрын
e có vào web và thấy khóa học tối ưu của anh thì em muốn hỏi em mới là sinh viên năm 3, về mysql cũng chỉ biết cơ bản các câu lệnh thì có theo được khóa tối ưu không a
@tranquochuywecommit
@tranquochuywecommit Жыл бұрын
Em inbox anh để anh hiểu hơn về em thì anh mới có thể giúp em tốt nhất nhé. Zalo anh: 0888549190
@uctuanvu2975
@uctuanvu2975 Жыл бұрын
Thường thì đánh khoá primary cho bảng con thì nó cũng sẽ mặc định đc index chứ nhỉ
@tranquochuywecommit
@tranquochuywecommit Жыл бұрын
Trong thực tế, các cột được chọn làm Foreign key trên bảng con thường không phải là Primary Key anh em nhé.
@namtongdosa9626
@namtongdosa9626 Жыл бұрын
Primary thì index tự động được tạo rồi bạn còn foreign key chưa chưa hẳn
@hoanguyeninh4777
@hoanguyeninh4777 Жыл бұрын
A cho e hỏi chút e xem các bài viết của anh có áp dụng hầu như là demo với oracle thì phạm vi nó cũng có thể áp dụng với các hệ QTCSDL khác như mysql/posgresql được đúng không ạ. Vì hiện tại e chỉ làm việc với 2 thằng này thôi ạ. E cảm ơn!
@tranquochuywecommit
@tranquochuywecommit Жыл бұрын
áp dụng thoải mái em ah. Tối ưu là tư duy và nguyên lý mà. Có rất nhiều anh em đang làm dự án với MySQL, PostgreSQL, SQLServer đang đồng hành cùng anh và đang áp dụng những bài viết tối ưu của anh trong dự án hiện tại. Trong nhiều bài viết anh cũng có demo để chứng minh nguyên lý có thể áp dụng với nhiều loại CSDL khác nhau.
@hoanguyeninh4777
@hoanguyeninh4777 Жыл бұрын
@@tranquochuywecommit Dạ vâng a. E cảm ơn ạ!
@hungtiet5284
@hungtiet5284 6 ай бұрын
cái quan trọng nhất là tại sao thì k có thấy noiis
@futhedude4848
@futhedude4848 4 ай бұрын
để bán khóa học mà bro :v
@nguyenngothuong
@nguyenngothuong Жыл бұрын
Lạy chúa em lấy data trên web về thực hành tầm 1tr dòng select cực lâu 😢😢😢
@tranquochuywecommit
@tranquochuywecommit Жыл бұрын
Tối ưu bản chất là tư duy và nguyên lý. Anh tặng em link các nội dung về tối ưu (liên tục cập nhật): wecommit.com.vn/tong-hop-link-cac-bai-viet-hay-tren-trang-wecommit-com-vn/
@nguyenhuudungz
@nguyenhuudungz Жыл бұрын
Em thấy mysql ko bị treo.
@tranquochuywecommit
@tranquochuywecommit Жыл бұрын
Trường hợp của em thì hệ thống đã tự động tạo Index trên FK rồi. Em thử kiểm tra trên hệ thống của mình thông tin Index có tạo chưa nhé.
@funy2024-k8n
@funy2024-k8n Жыл бұрын
khoá học mình có chi phí bao nhiêu ạ
@tranquochuywecommit
@tranquochuywecommit Жыл бұрын
Anh em đọc thông tin tại đây nhé wecommit.com.vn/chuong-trinh-dao-tao-toi-uu-co-so-du-lieu-wecommit/
ТЫ В ДЕТСТВЕ КОГДА ВЫПАЛ ЗУБ😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 4,3 МЛН
1, 2, 3, 4, 5, 6, 7, 8, 9 🙈⚽️
00:46
Celine Dept
Рет қаралды 108 МЛН
ТЮРЕМЩИК В БОКСЕ! #shorts
00:58
HARD_MMA
Рет қаралды 2,5 МЛН
Tầm quan trọng của thứ tự các cột xuất hiện trong INDEX POSTGRESQL
13:28
Trần Quốc Huy - Databases
Рет қаралды 9 М.
Chiến lược thoát khỏi Layoff một cách chủ động | Trần Quốc Huy Wecommit
18:22
ТЫ В ДЕТСТВЕ КОГДА ВЫПАЛ ЗУБ😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 4,3 МЛН