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.
106

Sự khác biệt giữa Multiprocessing và Threading trong Python là gì? Khi nào nên chọn cái nào để tối ưu hóa hiệu năng cho các tác vụ I/O-bound và CPU-bound?

Middle

Phân tích kỹ thuật

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...
107

Trong các ứng dụng Python Web, tại sao việc sử dụng Connection Pooling cho Database lại là bắt buộc để đảm bảo tính ổn định của hệ thống?

Middle

Vấn đề thực tế

Việc tạo mới một kết nối tới Database là một thao tác cực kỳ tốn kém (chi phí bắt tay TCP, xác thực, cấp phát tài nguyên phía Server). Nếu mỗi request đều tạo một kết nối mới, hệ thống sẽ nhanh chóng bị quá tải (Database Connection Exhaustion).

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...
108

Cơ chế hoạt động của Index Seek và Index Scan trong T-SQL là gì, và làm thế nào để tối ưu hóa các truy vấn có hiện tượng Table Scan trên các bảng dữ liệu lớn hàng triệu dòng?

Middle

1. Bản chất cơ chế hoạt động

  • Index Seek: Query Optimizer sử dụng B-Tree Index để tìm kiếm trực tiếp các trang dữ liệu (data pages) chứa giá trị thỏa mãn điều kiện WHERE. Thao tác này cực kỳ hiệu quả, chỉ đọc một số lượng trang dữ liệu tối thiểu.
  • Index Scan (hoặc Table Scan): Query Optimizer phải duyệt qua toàn bộ các trang dữ liệu của bảng hoặc index từ đầu đến cuối để tìm kiếm dữ liệu. Chi phí I/O và CPU tăng tuyến tính theo kích thước bảng.

2. Nguyên nhân dẫn đến Table Scan / Index Scan

  • Thiếu Index phù hợp cho mệnh đề WHERE hoặc JOIN.
  • Sử dụng hàm hoặc toán tử chuyển đổi kiểu dữ liệu lên cột được đánh Index (ví dụ: WHERE YEAR(OrderDate) = 2023 làm mất tác dụng của Index trên cột OrderDate).
  • Cột đầu tiên trong Composite Index không được sử dụng trong điều kiện tìm kiếm (vi phạm quy tắc Left-most prefix).
  • Bảng có kích thước quá nhỏ (SQL Server đánh giá Scan nhanh hơn Seek).

3. Phương pháp tối ưu hóa

  • Sử dụng SARGable Predicates: Viết điều kiện truy vấn có thể tận dụng Index. Ví dụ thay vì WHERE YEAR(OrderDate) = 2023, hãy dùng WHERE OrderDate >= '2023-01-01' AND OrderDate < '2024-01-01'.
  • Tạo Covering Index: Đưa các cột cần SELECT vào mệnh đề INCLUDE của Index để tránh việc Bookmark Lookup.
  • Cập nhật Statistics: Chạy UPDATE STATISTICS định kỳ để Query Optimizer đưa ra Execution Plan chính xác.

4. Lưu ý thực chiến Enterprise

Đối với các hệ thống OLTP, việc để xảy ra Table Scan trên các bảng hàng triệu dòng trong các transaction thường xuyên sẽ gây nghẽn cổ chai CPU và Disk I/O, dẫn đến lock tranh chấp diện rộng. Luôn kiểm tra Execution Plan thực tế trên môi trường Staging với dữ liệu tương đương Production.

109

Deadlock là gì trong T-SQL, và chiến lược xử lý triệt để hiện tượng Deadlock trong các hệ thống Transaction cao cấp được áp dụng như thế nào?

Middle

1. Định nghĩa Deadlock

Deadlock xảy ra khi hai hoặc nhiều Task (Process) giữ độc quyền khóa trên các tài nguyên khác nhau, đồng thời lại yêu cầu khóa trên tài nguyên mà Process kia đang giữ, khiến cả hai bị kẹt vĩnh viễn không thể tiếp tục cho đến khi SQL Server phát hiện và hủy (kill) một Process làm nạn nhân (Deadlock Victim).

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...
110

Sự khác biệt cốt lõi giữa Stored Procedure và User-Defined Function (UDF) trong T-SQL là gì, và việc lựa chọn sai đối tượng này ảnh hưởng thế nào đến kiến trúc hệ thống?

Middle

1. Phân biệt Stored Procedure và UDF

  • Stored Procedure (SP):
    • Có thể thực hiện các thao tác thay đổi dữ liệu (DML: INSERT, UPDATE, DELETE) và quản trị hệ thống (DDL).
    • Hỗ trợ trả về nhiều tập dữ liệu (result sets), tham số đầu ra (OUTPUT parameters) và mã trạng thái trả về (RETURN value).
    • Không thể được gọi trực tiếp bên trong một câu lệnh SELECT.
  • User-Defined Function (UDF):
    • Scalar Function và Inline Table-Valued Function chỉ thực hiện đọc dữ liệu (không được chứa các lệnh thay đổi dữ liệu hoặc gọi stored procedure).
    • Có thể được lồng trực tiếp vào trong các câu lệnh SELECT, WHERE, JOIN.

2. Ảnh hưởng kiến trúc khi sử dụng sai

  • Lạm dụng Scalar UDF: Scalar UDF thực thi một cách tuần tự cho từng dòng dữ liệu trong tập kết quả (Row-by-row execution), gây suy giảm hiệu năng nghiêm trọng (Performance bottleneck) trên các bảng lớn. Từ SQL Server 2019, tính năng Scalar UDF Inlining đã được giới thiệu để khắc phục phần nào, nhưng bản chất kiến trúc vẫn nên hạn chế.
  • Sử dụng sai Multi-Statement Table-Valued Functions (MSTVF): MSTVF khai báo một biến bảng bên trong và trả về nó. SQL Server thường ước lượng số dòng sai lệch nghiêm trọng (thường cố định là 1 hoặc 100 dòng) đối với MSTVF, dẫn đến Execution Plan kém tối ưu.

3. Lựa chọn tối ưu

  • Sử dụng Stored Procedure cho các business logic phức tạp, xử lý dữ liệu hàng loạt (Batch processing), tương tác DML.
  • Sử dụng Inline Table-Valued Function (ITVF) thay cho Scalar UDF và MSTVF khi cần tái sử dụng logic truy vấn có trả về bảng, vì ITVF được biên dịch nội tuyến (inlined) vào câu lệnh gọi chính giống như một View có tham số.

4. Lưu ý thực chiến Enterprise

Tránh tuyệt đối việc viết Business Logic phức tạp nằm sâu bên trong các Scalar UDF được gọi từ câu lệnh SELECT của các báo cáo lớn.

111

Cơ chế hoạt động của Indexes (Clustered và Non-Clustered) trong T-SQL ảnh hưởng như thế nào đến thao tác ghi (DML) và đọc (SELECT) dữ liệu?

Middle

1. Clustered Index

  • Cơ chế: Sắp xếp và lưu trữ các dòng dữ liệu vật lý trong bảng dựa trên khóa của Clustered Index. Mỗi bảng chỉ có duy nhất một Clustered Index.
  • Ảnh hưởng SELECT: Cực kỳ tối ưu khi truy vấn theo khoảng giá trị (Range queries) vì dữ liệu nằm liền kề nhau trên các trang đĩa.
  • Ảnh hưởng DML: Khi thực hiện INSERT hoặc UPDATE khóa chính, nếu trang dữ liệu bị đầy (Page Split), SQL Server phải phân tách trang dữ liệu, di chuyển một nửa dữ liệu sang trang mới, gây tiêu tốn tài nguyên I/O và tạo phân mảnh (Fragmentation).

2. Non-Non-Clustered Index

  • Cơ chế: Cấu trúc B-Tree riêng biệt, chứa các giá trị khóa của Index và con trỏ (Row Locator) trỏ về trang dữ liệu thực tế (nếu bảng không có Clustered Index) hoặc trỏ về khóa Clustered Index (nếu bảng có Clustered Index).
  • Ảnh hưởng SELECT: Giúp tìm kiếm nhanh chóng, nhưng nếu câu lệnh SELECT yêu cầu các cột không có trong Index, hệ thống phải thực hiện thêm bước Key Lookup / RID Lookup để lấy dữ liệu từ bảng gốc.
  • Ảnh hưởng DML: Mỗi khi có thao tác INSERT, UPDATE, DELETE trên bảng, mọi Non-Clustered Index liên quan cũng phải được cập nhật đồng thời. Quá trình này làm tăng chi phí ghi dữ liệu (Write Amplification).

3. Chiến lược quản trị trong Enterprise

  • Không đánh Index tràn lan. Chỉ đánh Index cho các cột thường xuyên xuất hiện trong mệnh đề WHERE, JOIN, ORDER BY và GROUP BY.
  • Thường xuyên theo dõi mức độ phân mảnh (Fragmentation) và thực hiện Rebuild hoặc Reorganize Index định kỳ để duy trì hiệu suất.

4. Lưu ý thực chiến Enterprise

Ưu tiên chọn khóa Clustered Index có tính chất tăng tuần tự (Sequential),ẹp hẹp (như INT hoặc BIGINT IDENTITY) thay vì sử dụng GUID (NEWID()) để tránh tình trạng phân mảnh trang dữ liệu nghiêm trọng do chèn ngẫu nhiên.

112

Giải pháp phân vùng bảng (Table Partitioning) trong T-SQL hoạt động như thế nào, và lợi ích thực tế của nó đối với các hệ thống dữ liệu lớn (VLDB) là gì?

Middle

1. Cơ chế hoạt động của Table Partitioning

  • Partition Function: Định nghĩa cách chia nhỏ dữ liệu thành các khoảng (ranges) dựa trên giá trị của một cột cụ thể (Partition Key, ví dụ: ngày tháng hoặc mã chi nhánh).
  • Partition Scheme: Ánh xạ các khoảng dữ liệu được định nghĩa bởi Partition Function vào các Filegroups khác nhau trên hệ thống lưu trữ.
  • Về mặt logic, bảng vẫn xuất hiện như một đối tượng duy nhất, nhưng về mặt vật lý, dữ liệu được chia thành nhiều phân vùng độc lập.

2. Lợi ích kiến trúc trong hệ thống VLDB (Very Large DataBase)

  • Tối ưu hóa hiệu năng truy vấn (Partition Elimination): Khi câu lệnh truy vấn có chứa điều kiện lọc trên cột Partition Key, Query Optimizer thông minh chỉ quét qua các phân vùng (partitions) liên quan thay vì quét toàn bộ bảng.
  • Quản lý dữ liệu lịch sử hiệu quả (Sliding Window Scenario): Cho phép thực hiện thao tác xóa dữ liệu cũ hoặc thêm dữ liệu mới trong thời gian chớp mắt thông qua lệnh SWITCH PARTITION mà không cần chạy lệnh DELETE tốn kém tài nguyên và gây khóa bảng.
  • Bảo trì linh hoạt: Có thể thực hiện Rebuild Index trên từng phân vùng riêng biệt thay vì phải chạy trên toàn bộ bảng lớn.

3. Điều kiện tiên quyết và hạn chế

  • Bảng phải có kích thước đủ lớn để việc phân vùng mang lại hiệu quả vượt trội hơn chi phí quản lý.
  • Khóa Clustered Index của bảng bắt buộc phải chứa cột Partition Key.

4. Lưu ý thực chiến Enterprise

Partitioning là công cụ đắc lực cho các hệ thống Data Warehouse hoặc hệ thống Log giao dịch lớn. Tuy nhiên, việc thiết kế sai Partition Key có thể làm giảm hiệu năng hệ thống nếu các truy vấn thường xuyên quét chéo qua nhiều phân vùng khác nhau.

113

Làm thế nào để quản lý và tối ưu hóa kết nối Database trong Laravel khi ứng dụng phải xử lý hàng nghìn request đồng thời?

Middle

Để tối ưu hóa kết nối Database trong Laravel khi xử lý lượng request đồng thời lớn, chúng ta cần áp dụng các chiến lược sau:

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...
114

Phân tích cơ chế hoạt động của Service Container trong Laravel và cách áp dụng Dependency Injection để giảm sự phụ thuộc giữa các module?

Middle

1. Bản chất của Service Container

Service Container trong Laravel là một công cụ cực kỳ mạnh mẽ để quản lý các lớp phụ thuộc (Class Dependencies) và thực hiện Dependency Injection (DI). Thay vì khởi tạo các đối tượng trực tiếp bằng từ khóa new bên trong Controller hoặc Service, chúng ta định nghĩa các phụ thuộc thông qua Constructor Injection, và Service Container sẽ tự động phân giải (Resolve) các đối tượng đó.

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...
115

Khi nào nên sử dụng Database Transactions kết hợp với Database Locks (Pessimistic Locking) trong Laravel để giải quyết bài toán tranh chấp dữ liệu (Race Condition)?

Middle

1. Vấn đề Race Condition trong hệ thống Enterprise

Khi nhiều người dùng cùng thực hiện một thao tác tại một thời điểm (ví dụ: săn mã giảm giá có giới hạn số lượng, hoặc chuyển tiền tài khoản), hiện tượng tranh chấp dữ liệu (Race Condition) xảy ra. Nếu chỉ dùng Transaction thông thường theo mức cô lập mặc định (Repeatable Read trong MySQL), dữ liệu có thể bị ghi đè không chính xác.

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...
116

Cơ chế hoạt động của Laravel Event và Listener là gì, và làm thế nào để phân biệt khi nào nên dùng Event/Listener đồng bộ so với Queue Listener?

Middle

1. Bản chất của Event và Listener trong Laravel

Event và Listener triển khai mô hình Observer Pattern trong thiết kế phần mềm, giúp tách biệt các nghiệp vụ cốt lõi (Core Business Logic) với các tác vụ phụ (Side Effects) như gửi email xác nhận, ghi log hệ thống, hoặc đẩy thông báo.

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...
117

Làm thế nào để tối ưu hiệu năng hệ thống Laravel khi phải xử lý các báo cáo dữ liệu lớn (Big Data Reporting) mà không làm sập bộ nhớ PHP (Memory Leak)?

Middle

1. Nguyên nhân gây Memory Leak trong Laravel

Khi sử dụng Eloquent ORM để truy vấn hàng trăm nghìn bản ghi cùng lúc (ví dụ: User::all() hoặc User::get()), Laravel sẽ tải toàn bộ đối tượng model vào bộ nhớ RAM của PHP. Khi vượt quá giới hạn memory_limit, ứng dụng sẽ văng lỗi Allowed memory size exhausted.

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...
118

Trong ASP.NET Web API, làm thế nào để thực hiện cơ chế Distributed Caching với Redis để tối ưu hóa hiệu năng cho các API có tần suất truy vấn dữ liệu lớn nhưng ít thay đổi?

Middle

Để triển khai Distributed Caching với Redis trong ASP.NET Web API, chúng ta sử dụng interface IDistributedCache.

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...
119

Hãy giải thích cơ chế hoạt động của JWT Authentication trong ASP.NET Web API và cách xử lý khi Token hết hạn (Token Refresh) một cách an toàn?

Middle

JWT (JSON Web Token) là cơ chế xác thực stateless. Khi người dùng đăng nhập thành công, server cấp một Access Token (thời gian sống ngắn) và một Refresh Token (thời gian sống dà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...
120

Trong ASP.NET Web API, làm thế nào để tối ưu hóa việc truy vấn dữ liệu lớn bằng cách sử dụng IQueryable và cơ chế Pagination?

Middle

Việc trả về toàn bộ dữ liệu từ database (ví dụ: ToList()) là nguyên nhân hàng đầu gây sập hệ thống do tràn bộ nhớ (Out of Memory).

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