Việc sử dụng SELECT trong ứng dụng gây ra chi phí ẩn: chuyển các cột không cần thiết qua mạng, làm tăng kích thước dữ liệu và thời gian xử lý tại client; nó phá vỡ tối ưu hóa covering index buộc MySQL phải lấy toàn bộ hàng; tạo ra code dễ vỡ khi hành vi thay đổi âm thầm khi thêm, đổi tên hoặc trùng lặp cột qua join; và rò rỉ dữ liệu nhạy cảm như internal_notes trong response API, logs hoặc exports. Bài viết đưa ra ví dụ cụ thể về covering indexes, join với tên cột trùng, và rò rỉ dữ liệu, khuyến nghị nên dùng danh sách cột cụ thể thay vì SELECT trong production code. Tuy nhiên, SELECT vẫn hữu ích cho việc khám phá nhanh hoặc dùng với COUNT().
AI summaries can be wrong. Read the original before relying on anything important.
Why read it: Sử dụng SELECT * trong mã ứng dụng gây ra chi phí ẩn làm tăng thời gian xử lý và nguy cơ rò rỉ dữ liệu.
Answer 3 short questions to earn reward points for this article. Only do it if you want the points.
3 questions · under a minute · optional
Source: https://blogs.oracle.com/mysql/mysql-select-star-best-practices. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000 DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try itTrong Go 1.27, cải tiến về việc tái sử dụng kết nối HTTP/1 giúp tăng tốc đáng kể cho các chương trình gửi nhiều request tuần tự. Nguyên nhân kỹ thuật là do Go tối ưu hóa cơ chế keep-alive connection, giảm thời gian thiết lập kết nối TCP mới cho mỗi request. Hệ quả cụ thể là tăng throughput lên đến 40% trong các kịch bản sending nhiều request đến cùng một host. Điểm đáng học tập là tối ưu hóa connection reuse là chiến lược hiệu quả cho ứng dụng web-client, đặc biệt khi sử dụng standard library của Go mà không cần dependency bên thứ ba.
Bài viết này giúp lập trình viên hiểu cách Go 1.27 tối ưu hóa việc tái sử dụng kết nối HTTP/1 để tăng tốc độ ứng dụng gửi nhiều yêu cầu tuần tự.
Phiên bản Prisma ORM 8 đã giải quyết 330 vấn đề trên GitHub với tổng cộng 8,922 lượt bình …
Bối cảnh là các câu hỏi phỏng vấn về AI thường đặt ra thách thức về việc nhận biết khi AI tự tin nhưng sai. Nguyên nhân kỹ thuật là Large Language Models (LLMs) như GPT-4 được huấn luyện để tạo ra văn bản mạch lạc, dẫn đến hiện tượng "hallucination" - tạo ra thông tin không chính xác nhưng trình bày một cách quyết đoán. Hệ quả là người dùng khó phân biệt giữa thông tin chính xác và giả mạo, gây rủi ro trong các tình huống quan trọng. Điều đáng học là năm câu trả lời phỏng vấn hiệu quả giúp ứng viên thể hiện hiểu biết về giới hạn của AI và phương pháp xác minh thông tin do AI tạo ra.
Bài viết giải thích hiện tượng AI tự tin khi sai và cách trả lời phỏng vấn thể hiện sự am hiểu về vấn đề này.
Multi-tenant architecture giúp tối ưu tài nguyên nhưng các best practices như shared database và tenant context thực chất che giấu những trade-off. Việc sử dụng tenant-aware filtering trong PostgreSQL hay Redis cho mỗi request tăng latency lên đến 30-50ms. Shared database dẫn đến rủi ro data leakage khi tenant_id bị bypass trong 1 truy vấn SQL. Feature flags tuy linh hoạt nhưng gây khó khăn trong việc theo dõi bug và triển khai thực tế. Bạn nên cân nhắc trade-off giữa isolation và performance trước khi áp dụng các giải pháp multi-tenant.
Multi-Tenant Best Practices Can Backfire giúp lập trình viên nhận diện những điểm mù khi triển khai đa khách hàng và tránh các vấn đề tiềm ẩn.
Cuốn sách hướng dẫn thiết kế database tập trung vào mô hình logic trước khi chuyển sang schema vật lý, sử dụng các anchors, attributes và links để tổ chức dữ liệu. Tác giả đề xuất chiến lược table-per-anchor với các khuyến nghị cụ thể về kiểu dữ liệu cho SQL như numeric, datetime, và UUID. Cuốn sách cũng xử lý các vấn đề thực tế như dữ liệu bị thiếu, dữ liệu thứ cấp và di chuyển database, cùng với các pattern thiết kế cho trường hợp đặc biệt như polymorphic data. Bạn sẽ học cách xử lý time trong database và cách chọn giữa các chiến lược thiết kế table dựa trên nhu cầu cụ thể của dự án.
Cuốn sách này cung cấp kiến thức toàn diện về thiết kế cơ sở dữ liệu từ mô hình logic đến vật lý giúp lập trình viên xây dựng hệ thống hiệu quả và bền vững.
Bất kỳ công ty nào trên thế giới cũng đều có chung bảy bảng cơ bản trong production database. Điều này xảy ra do nhu cầu universal trong quản lý dữ liệu như users, roles, permissions, organizations, projects, activities và audit logs. Hệ quả là kiến trúc database có phần giống nhau dù ngành nghề hay thời điểm khác nhau. Điều đáng học hỏi là việc nhận ra pattern này giúp tối ưu hóa thiết kế database và giảm thiểu thời gian phát triển.
Bài viết này giúp bạn hiểu được cấu trúc dữ liệu phổ biến nhất trong mọi hệ thống quản trị dữ liệu.
Khi AI tạo ra một bảng không tồn tại trong database và viết truy vấn hoàn chỉnh cho bảng ảo này, hiện tượng AI hallucination đang xảy ra trong ứng dụng RAG. Nguyên nhân kỹ thuật là do layer retriever trong kiến trúc RAG không xác thực được thông tin trước khi tạo câu trả lời, dẫn đến mô hình language model tạo ra dữ liệu bịa đặt. Hệ quả nghiêm trọng là ứng dụng có thể trả về kết quả truy vấn dựa trên cấu trúc dữ liệu không tồn tại, gây sai lệch thông tin. Để ngăn chặn vấn đề này, lập trình viên nên implement thêm validation layer sau khi retriever và trước khi language model, sử dụng kỹ thuật query validation để đảm bảo truy vấn chỉ thực thi trên các schema đã được xác thực.
Bài này giúp lập trình viên hiểu và ngăn chặn hiện tượng AI tạo ra dữ liệu không tồn tại và truy vấn sai.
Nhiều lập trình viên lầm tưởng rằng khi sử dụng ORM, nguy cơ SQL injection sẽ được loại bỏ hoàn toàn, nhưng thực tế chỉ chuyển dịch sang vị trí khác. Các ORM như Sequelize, Prisma, TypeORM, và Knex vẫn có thể bị khai thác SQL injection khi phép ánh xạ đối tượng quan hệ không được triển khai chính xác. Kẻ tấn công có thể lợi dụng các phương thức động hoặc hàm không được parameter hóa để chèn mã độc vào truy vấn. Lỗi thường gặp nhất là sử dụng template literals kết hợp với các giá trị đầu vào không được kiểm soát, dẫn đến lỗ hổng bảo hiểm nghiêm trọng. Mặc dù có SQL injection ORM vẫn tồn tại, bài viết cung cấp các giải pháp cụ thể để bảo vệ ứng dụng, nhấn mạnh tầm quan trọng của việc kiểm tra đầu vào và sử dụng prepared statements thay vì concatenation strings.
ORM có thể vẫn để lỗ hổng SQL injection đi qua nếu bạn không sử dụng chúng đúng cách.
Đang tải bình luận…