Mở đăng ký khóa học Fullstack qua Zoom. Tham khảo tại đây

Thư Viện Câu Hỏi Phỏng Vấn

Tổng hợp các câu hỏi tuyển dụng thực tế theo nhiều cấp độ từ Entry đến Expert để bạn tự tin chinh phục nhà tuyển dụng.

Interactive Practice Tổng cộng 4,442 câu hỏi độc bản

Luyện Tập Phỏng Vấn Thử

Mô phỏng áp lực phỏng vấn thật với đồng hồ đếm ngược từng câu, tự đánh giá phản xạ và đo lường độ sẵn sàng của bạn.

Vui lòng đăng nhập để tham gia luyện tập và lưu tiến độ phỏng vấn.
Khóa học Chuyên sâu MySQL

Khóa học Tối Ưu Database MySQL Enterprise

Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.

31

Quy tắc Leftmost Prefix trong Composite Index ảnh hưởng như thế nào đến hiệu suất truy vấn và làm sao để thiết kế index tối ưu cho các câu lệnh WHERE phức tạp?

Senior

Quy tắc Leftmost Prefix yêu cầu các cột trong Composite Index phải được sử dụng theo thứ tự từ trái sang phải. Nếu truy vấn bỏ qua cột đầu tiên, MySQL sẽ không thể sử dụng index đó hiệu quả. Để tối ưu: 1. Đặt các cột có độ chọn lọc (cardinality) cao lên trước. 2. Sắp xếp các cột theo thứ tự sử dụng trong mệnh đề WHERE. Ví dụ: Index (status, created_at) sẽ hỗ trợ tốt cho WHERE status = 'active' AND created_at > '2023-01-01', nhưng không hỗ trợ tốt nếu chỉ lọc theo created_at.

32

Khi phân tích Explain Plan, làm thế nào để phân biệt giữa Index Scan và Index Seek, và tại sao việc xuất hiện 'Using filesort' hoặc 'Using temporary' lại là dấu hiệu cảnh báo nguy hiểm?

Senior

Index Seek là quá trình tìm kiếm trực tiếp trong cấu trúc B-Tree, rất nhanh. Index Scan là duyệt toàn bộ cây index, chậm hơn. 'Using filesort' xuất hiện khi MySQL không thể dùng index để sắp xếp kết quả, buộc phải dùng bộ nhớ hoặc đĩa để sort. 'Using temporary' xuất hiện khi MySQL cần bảng tạm để xử lý GROUP BY hoặc DISTINCT. Cả hai đều gây tiêu tốn I/O lớn, cần tối ưu bằng cách thêm index phù hợp hoặc điều chỉnh câu lệnh SQL.

33

Trong tình huống Slow Query Log ghi nhận hàng nghìn truy vấn chậm, chiến lược ưu tiên xử lý của bạn là gì để tối ưu hóa hệ thống nhanh nhất?

Senior

Chiến lược ưu tiên: 1. Sử dụng công cụ như pt-query-digest để nhóm các truy vấn theo mẫu (fingerprint) và xác định truy vấn gây tải lớn nhất (tổng thời gian thực thi). 2. Tập trung vào các truy vấn có số lượng Rows Examined lớn nhưng Rows Sent nhỏ. 3. Kiểm tra Explain Plan cho các truy vấn này để tìm thiếu sót index. 4. Áp dụng index hoặc rewrite query. 5. Theo dõi lại Slow Query Log để xác nhận hiệu quả.

34

Tại sao việc sử dụng hàm hoặc biểu thức trên cột trong mệnh đề WHERE lại làm vô hiệu hóa Composite Index và cách khắc phục?

Senior

MySQL không thể sử dụng index nếu cột bị bao bọc trong hàm (ví dụ: WHERE YEAR(created_at) = 2023) vì giá trị index được lưu trữ theo giá trị gốc của cột, không phải kết quả của hàm. Khắc phục: Thay đổi câu lệnh thành so sánh khoảng (range scan) như WHERE created_at >= '2023-01-01' AND created_at <= '2023-12-31'. Điều này cho phép MySQL sử dụng index trên cột created_at một cách hiệu quả.

35

Làm thế nào để tối ưu hóa truy vấn có mệnh đề ORDER BY kết hợp với LIMIT khi dữ liệu có kích thước rất lớn?

Senior

Khi dùng ORDER BY với LIMIT, MySQL thường phải đọc nhiều dòng hơn mức cần thiết nếu không có index phù hợp. Kỹ thuật 'Deferred Join' (hoặc 'Seek Method') thường được dùng: thay vì SELECT FROM table ORDER BY id LIMIT 100000, 10, hãy thực hiện SELECT FROM table JOIN (SELECT id FROM table ORDER BY id LIMIT 100000, 10) AS temp USING (id). Cách này giúp MySQL chỉ truy xuất dữ liệu cần thiết sau khi đã xác định được các ID thông qua index.

36

Trong MySQL, sự khác biệt giữa Index Condition Pushdown (ICP) và cách xử lý truy vấn truyền thống là gì?

Senior

Truyền thống: MySQL đọc toàn bộ row từ bảng vào Server layer rồi mới lọc theo điều kiện WHERE. ICP: MySQL đẩy điều kiện lọc xuống Storage Engine. Nếu một phần của điều kiện WHERE có thể được kiểm tra bằng index, Storage Engine sẽ lọc ngay tại đó trước khi trả về row. Điều này giảm thiểu đáng kể số lượng row phải truyền từ Storage Engine lên Server, giúp tăng tốc độ truy vấn đáng kể.

37

Làm thế nào để xác định một Composite Index có đang bị dư thừa (Redundant Index) và tại sao việc xóa bỏ chúng lại quan trọng?

Senior

Index dư thừa là khi một index là tiền tố (prefix) của một index khác (ví dụ: index (a) và index (a, b)). Index (a) trở nên dư thừa vì mọi truy vấn dùng (a) đều có thể dùng (a, b). Việc giữ index dư thừa làm chậm quá trình INSERT, UPDATE, DELETE vì MySQL phải cập nhật tất cả các index liên quan, đồng thời tốn thêm dung lượng lưu trữ và bộ nhớ Buffer Pool.

38

Vai trò của 'Extra' column trong Explain Plan là gì và những giá trị nào cần đặc biệt lưu ý?

Senior

Cột 'Extra' cung cấp thông tin chi tiết về cách MySQL thực hiện truy vấn. Các giá trị cần lưu ý: 1. 'Using index': Tốt nhất (Covering Index). 2. 'Using index condition': Đang sử dụng ICP. 3. 'Using filesort': Cần tối ưu lại ORDER BY. 4. 'Using temporary': Cần tối ưu lại GROUP BY hoặc DISTINCT. 5. 'Full table scan': Cần thêm index ngay lập tức.

39

Khi nào nên sử dụng Covering Index và giới hạn của kỹ thuật này trong thực tế là gì?

Senior

Covering Index là khi tất cả các cột cần thiết cho truy vấn (trong SELECT, WHERE, JOIN) đều nằm trong cùng một index. Khi đó, MySQL không cần truy cập vào bảng gốc (Clustered Index) để lấy dữ liệu. Giới hạn: Không nên lạm dụng bằng cách thêm quá nhiều cột vào index vì sẽ làm tăng kích thước index, ảnh hưởng đến hiệu suất ghi và chiếm dụng bộ nhớ Buffer Pool.

40

Tại sao việc chọn kiểu dữ liệu cho cột trong Composite Index lại ảnh hưởng đến hiệu năng của MySQL?

Senior

Kiểu dữ liệu nhỏ hơn giúp index nhỏ hơn, cho phép nhiều node index nằm vừa trong RAM (Buffer Pool), giảm I/O đĩa. Ví dụ: Dùng INT thay vì BIGINT nếu không cần thiết, hoặc dùng VARCHAR độ dài vừa đủ thay vì TEXT. Ngoài ra, việc so sánh dữ liệu không khớp kiểu (ví dụ: so sánh cột VARCHAR với giá trị INT) sẽ khiến MySQL không thể sử dụng index do phải thực hiện implicit type conversion.

41

Tại sao Joins optimization lại đóng vai trò quan trọng khi phát triển ứng dụng MySQL chịu tải cao?

Senior

Trong phát triển dự án với MySQL, việc tối ưu hóa và quản lý tốt Joins optimization là vô cùng quan trọng để đảm bảo tính ổn định và hiệu năng của hệ thống. Dưới đây là các khía cạnh kỹ thuật cốt lõi:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
42

Tại sao Explain Query plan lại đóng vai trò quan trọng khi phát triển ứng dụng MySQL chịu tải cao?

Senior

Trong phát triển dự án với MySQL, việc tối ưu hóa và quản lý tốt Explain Query plan là vô cùng quan trọng để đảm bảo tính ổn định và hiệu năng của hệ thống. Dưới đây là các khía cạnh kỹ thuật cốt lõi:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
43

Best practices cần tuân thủ khi tích hợp và cấu hình Transactions ACID trong dự án MySQL là gì?

Expert

Trong phát triển dự án với MySQL, việc tối ưu hóa và quản lý tốt Transactions ACID là vô cùng quan trọng để đảm bảo tính ổn định và hiệu năng của hệ thống. Dưới đây là các khía cạnh kỹ thuật cốt lõi:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
44

Best practices cần tuân thủ khi tích hợp và cấu hình Partitions setup trong dự án MySQL là gì?

Expert

Trong phát triển dự án với MySQL, việc tối ưu hóa và quản lý tốt Partitions setup là vô cùng quan trọng để đảm bảo tính ổn định và hiệu năng của hệ thống. Dưới đây là các khía cạnh kỹ thuật cốt lõi:

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
High-Ticket Mentoring
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?

Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.

AI Resume Scanner
Kiểm Tra CV Chuẩn ATS Miễn Phí

Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học