Hệ thống kiến thức Database này dành cho việc học backend, thực hành kỹ thuật và ôn tập phỏng vấn. Các bài viết về Database trên website được sắp xếp theo thứ tự “kiến thức cơ bản về Database -> SQL -> MySQL -> Redis -> NoSQL và công cụ tìm kiếm”.
Hệ thống kiến thức Database này dành cho việc học backend, thực hành kỹ thuật và ôn tập phỏng vấn. Các bài viết về Database trên website được sắp xếp theo thứ tự “kiến thức cơ bản về Database -> SQL -> MySQL -> Redis -> NoSQL và công cụ tìm kiếm”.
Thread A đã lấy được resource 1, thread B cũng đã lấy được resource 2. Tiếp theo, thread A muốn tiếp tục chạy thì cần resource 2; thread B muốn tiếp tục chạy thì lại cần resource 1.
Hai thread đều không ném exception, cũng không phải CPU bị chạy hết công suất. Hiện tượng nhìn thấy trên production có thể chỉ là vài request không trả về trong thời gian dài, còn worker thread trong thread pool dần bị chiếm hết.
MySQL là một trong những relational database được dùng phổ biến nhất trong backend development, đồng thời là chuyên đề dễ bị hỏi sâu đến cùng trong các buổi phỏng vấn database. Khi học MySQL, nên tập trung vào các mạch chính: index làm truy vấn nhanh hơn như thế nào, transaction bảo đảm consistency ra sao, log bảo đảm recovery và replication thế nào, dữ liệu được đồng bộ tới các hệ thống không đồng nhất như search ra sao, execution plan xác định slow SQL như thế nào.
SQL là kiến thức nền tảng về database mà backend developer không thể bỏ qua. Dù học tiếp về index của MySQL, execution plan hay tối ưu SQL chậm, bạn đều cần nắm vững các khái niệm cơ bản như truy vấn, lọc, tổng hợp, kết nối, truy vấn con và thay đổi dữ liệu.