Trong quá trình thực hiện các dự án phần mềm, nhiều sinh viên thường cho rằng chỉ cần câu lệnh SQL chạy ra kết quả đúng là đã hoàn thành nhiệm vụ. Tuy nhiên, trong môi trường doanh nghiệp, một câu lệnh đúng chưa chắc đã là một câu lệnh tốt. Từ những tình huống thực tế trong quá trình giảng dạy, giảng viên Trần Quang Bình từ FPT Polytechnic TP HCM đã chia sẻ một trong những bài học quan trọng mà sinh viên Công nghệ thông tin thường bỏ qua: sự khác biệt giữa việc “chạy được” và “chạy hiệu quả”.
Khi dữ liệu thực tế không giống dữ liệu trên lớp
Một trong những yêu cầu phổ biến khi làm việc với cơ sở dữ liệu là tìm các bản ghi không thuộc về một nhóm dữ liệu nào đó. Chẳng hạn, tìm danh sách nhân viên chưa được phân công vào dự án, khách hàng chưa từng đặt hàng hoặc sản phẩm chưa phát sinh giao dịch.
Đối với những bài toán như vậy, sinh viên thường lựa chọn nhiều cách tiếp cận khác nhau. Trên dữ liệu mẫu với vài chục hoặc vài trăm dòng, hầu hết các phương án đều cho ra kết quả giống nhau.
Tuy nhiên, khi áp dụng vào môi trường doanh nghiệp với hàng trăm nghìn hoặc hàng triệu bản ghi, sự khác biệt bắt đầu xuất hiện.
Theo giảng viên Trần Quang Bình, đây là thời điểm mà tư duy của một người học lập trình và một lập trình viên chuyên nghiệp bắt đầu tách biệt. “Trong doanh nghiệp, điều quan trọng không chỉ là câu lệnh có chạy được hay không, mà còn là chạy có đúng trong mọi trường hợp và có đủ hiệu quả để đáp ứng khối lượng dữ liệu lớn hay không”.

“Cạm bẫy” mang tên NULL
Một trong những nguyên nhân khiến nhiều sinh viên gặp lỗi khi làm việc với cơ sở dữ liệu lớn là chưa hiểu đầy đủ về giá trị NULL. Trong môi trường học tập, dữ liệu thường được chuẩn hóa và khá “sạch”. Nhưng ngoài thực tế, dữ liệu thiếu, dữ liệu khuyết hoặc dữ liệu chưa xác định là điều xảy ra thường xuyên.
Chỉ cần xuất hiện một giá trị NULL ở vị trí không được dự tính trước, một câu lệnh vốn chạy hoàn hảo trên dữ liệu mẫu có thể trả về kết quả hoàn toàn sai lệch. Đây là lý do các doanh nghiệp luôn yêu cầu lập trình viên phải hiểu bản chất của dữ liệu thay vì chỉ ghi nhớ cú pháp.
Viết đúng chưa đủ, còn phải tối ưu
Một vấn đề khác mà sinh viên thường ít chú ý là hiệu năng xử lý. Khi quy mô dữ liệu còn nhỏ, sự khác biệt về tốc độ gần như không đáng kể. Nhưng khi hệ thống phải xử lý hàng trăm nghìn hoặc hàng triệu bản ghi, cách viết câu lệnh sẽ ảnh hưởng trực tiếp đến tốc độ phản hồi, tài nguyên máy chủ và trải nghiệm người dùng.
Nhiều câu lệnh tuy trả về kết quả chính xác nhưng lại tiêu tốn rất nhiều tài nguyên hệ thống. Ngược lại, những phương pháp tối ưu hơn có thể giúp giảm đáng kể thời gian xử lý và nâng cao hiệu suất vận hành.
Theo các chuyên gia công nghệ, đây cũng là một trong những kỹ năng quan trọng giúp phân biệt giữa lập trình viên mới vào nghề và những người đã có kinh nghiệm thực tế.

Tư duy nghề nghiệp bắt đầu từ những chi tiết nhỏ
Trong quá trình đào tạo tại FPT Polytechnic, sinh viên không chỉ được học cách viết câu lệnh SQL mà còn được tiếp cận tư duy xử lý dữ liệu theo chuẩn doanh nghiệp.
Thông qua các bài tập, dự án thực hành và những tình huống thực tế được giảng viên chia sẻ, sinh viên dần hiểu rằng công việc của một lập trình viên không đơn thuần là tạo ra sản phẩm hoạt động được, mà còn phải đảm bảo tính ổn định, khả năng mở rộng và hiệu quả vận hành trong tương lai.
Bài học từ câu chuyện SQL tưởng chừng rất nhỏ nhưng lại phản ánh một nguyên tắc quan trọng trong nghề công nghệ thông tin: đừng chỉ nhìn vào kết quả trước mắt.
Một câu lệnh chạy đúng với vài dòng dữ liệu thử nghiệm chưa chắc sẽ hoạt động tốt trong môi trường thực tế. Hiểu dữ liệu, hiểu cách hệ quản trị cơ sở dữ liệu vận hành và lựa chọn giải pháp tối ưu mới là điều tạo nên giá trị của một lập trình viên chuyên nghiệp.
Đó cũng chính là tinh thần “Thực học – Thực nghiệp” mà sinh viên FPT Polytechnic được rèn luyện trong suốt quá trình học tập: học để hiểu bản chất, làm để giải quyết bài toán thực tế và sẵn sàng thích nghi với những yêu cầu của doanh nghiệp ngay từ khi còn ngồi trên ghế nhà trường.
Giảng viên Trần Quang Bình
Bộ môn Công nghệ thông tin
FPT Polytechnic TP HCM

