ClickHouse 26.6 thêm tính năng hypothetical indexes cùng lệnh EXPLAIN WHATIF để thử các ứng viên skip index mà không cần tạo thực tế. Khi chạy EXPLAIN WHATIF <query>, hệ thống tạo một mục metadata cho index ảo và tính toán estimated skip ratio dựa trên thống kê cột và mức độ granularity. Kết quả thường được biểu thị dưới dạng phần trăm, cho phép lập trình viên so sánh nhanh nhiều thiết kế index và chọn những cái có tiềm năng giảm lượng dữ liệu đọc nhất. Tuy nhiên, ước lượng này giả định dữ liệu phân phối đều và bỏ qua lệch, vì vậy tỷ lệ skip thực tế có thể thấp hơn trên các cột có cardinality cao hoặc dữ liệu skew. Để tránh sai lầm, nên xem số liệu từ EXPLAIN WHATIF như một bộ lọc ban đầu và xác thực bằng việc tạo index thực trên một mẫu dữ liệu đại diện trước khi quyết định triển khai trong production.
Vì sao nên đọc: Đọc bài này để hiểu cách tối ưu hóa truy vấn ClickHouse hiệu quả bằng hypothetical indexes và skip index candidates.
Trả lời 3 câu hỏi ngắn để nhận điểm thưởng cho bài này. Chỉ làm khi bạn muốn lấy điểm.
3 câu hỏi · dưới một phút · không bắt buộc
Nguồn: https://bigdataboutique.com/blog/clickhouse-hypothetical-indexes. 8 Sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Đang tải bình luận…
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.
DuckDB 2.0 mang lại hiệu suất vượt trội với recursive CTEs nhanh hơn tới 90x so với phiên bản 1.5.5, kiểu dữ VARIANT xử lý nhanh hơn 6x so với JSON text, và async I/O trên S3 tăng 2.4x. Sự cải thiện đến từ tối ưu hóa engine xử lý, đặc biệt là việc bổ sung cache-aware execution plan và cải thiện cách quản lý memory cho variant data. Điều này cho thấy việc hiểu cách DuckDB lưu trữ và xử lý dữ liệu (đặc biệt với variant và variant types) sẽ giúp tối ưu hóa truy vấn tốt hơn. Bài viết cung cấp những insight thực tế về cách thiết kế schema dữ liệu để tận dụng tối đa hiệu năng mới mà không cần thay đổi code ứng dụng.
DuckDB 2.0 mang đến tốc độ vượt trội với cải tiến đáng kể trong CTE đệ quy, xử lý VARIANT và I/O bất đồng bộ, giúp lập trình viên tối ưu hiệu suất truy vấn dữ liệu.
Bài viết giải thích thiết kế hệ thống từ đơn giản (máy chủ đơn) đến phức tạp (hàng triệu người dùng), bao gồm API, cơ sở dữ liệu, caching, CDN, load balancing và hạ tầng sản xuất.
Bài viết giúp bạn hiểu rõ cách xây dựng cơ sở hạ tầng thực tế từ những nguyên tắc cơ bản nhất, từ đó tránh những sai lầm thường gặp khi mở rộng hệ thống khi còn mới mẻ.
gRPC-Web được ra đời để cho phép các ứng dụng trình duyệt gọi dịch vụ gRPC mà không cần thay đổi máy chủ, nhưng nó dựa trên việc mã hóa lại payload và thường yêu cầu một proxy như Envoy để chuyển đổi giữa HTTP/1.1 của trình duyệt và HTTP/2 của máy chủ. Vì trình duyệt không hỗ trợ nguyên bản HTTP/2, gRPC-Web buộc phải sử dụng định dạng mã hóa đặc biệt và thường chỉ hỗ trợ gọi unary, khiến các tính năng streaming của gRPC bị hạn chế hoặc mất đi. Điều này dẫn đến độ trễ tăng lên, kích thước gói tin lớn hơn và khiến trình duyệt trở thành khách hàng hạng hai so với các client gốc sử dụng gRPC qua HTTP/2. Bài viết gợi ý thay vào đó các nhà phát triển nên cân nhắc sử dụng giao thức RPC gốc cho web như ConnectRPC hoặc tRPC, hoặc đơn giản là REST/GraphQL khi không cần các tính năng streaming mạnh mẽ của gRPC. Bài học là khi chọn RPC cho ứng dụng web, ưu tiên những giải pháp không cần proxy và không làm thay đổi semantics của giao thức gốc để tránh những Overshoot về hiệu suất và tính năng.
Đọc bài này để hiểu cách gRPC-Web đã bị hạn chế trong môi trường web so với gRPC truyền thống, và tìm hiểu về những lỗ hổng về an toàn và hiệu suất, cùng so sánh với các giải pháp RPC phù hợp hơn cho web như Protocol Buffers Web để tối ưu hóa ứng dụng web hiện đại.
ORMs vẫn cần thiết vì chúng cung cấp lớp trừu tượng an toàn, hiệu quả để tương tác với cơ sở dữ liệu, trong khi LLMs chỉ sinh code tiềm ẩn rủi ro lỗi, kém tối ưu và khó bảo trì. ORMs giúp chuẩn hóa truy vấn, tránh SQL injection và tối ưu hóa hiệu suất thông qua caching, điều mà code do LLM sinh ra khó đảm bảo.
Lập trình viên nên đọc bài này để hiểu cách ORM và SQL vẫn giữ vai trò quan trọng trong quản lý dữ liệu cơ bản, giúp tránh rủi ro lỗi và tối ưu hóa hiệu suất khi ứng dụng lớn cần kiểm soát trực tiếp dữ liệu.
Bài viết hướng dẫn cách tạo JSON Schema và OpenAPI specs từ Protobuf. Nguyên nhân kỹ thuật là do Protobuf hỗ trợ việc tạo schema tự động nhưng cần thêm cấu hình để xuất định dạng khác. Hệ quả là developer có thể tự động hóa việc tạo API documentation từ định nghĩa Protocol Buffer. Điều đáng học là công cụ Buf có thể chuyển đổi .proto files thành JSON Schema và OpenAPI specs giúp chuẩn hóa API documentation.
Bài viết này giúp lập trình viên tạo JSON Schema và OpenAPI specs từ Protobuf một cách hiệu quả.
AI code review đang là nút thắt thực sự và mọi người đều thừa nhận điều đó. Trong sơ đồ tổ chức, không có vị trí verifier hay bất kỳ khoản ngân sách nào dành cho việc này.
Lập trình viên nên đọc bài này vì nó cảnh báo về nguy cơ mất vị trí của những kỹ sư có kinh nghiệm trước sự phát triển nhanh chóng của AI, khi các công ty bỏ bỏ vai trò kiểm tra và đầu tư vào đội ngũ chuyên môn, khiến sự khác biệt giữa người mới và người giàu kinh nghiệm trở nên mờ nhạt.
Đội ngũ gRPC-Rust vừa hoàn thành bản preview phía client và đang chuẩn bị cho các bước phát triển tiếp theo. Họ cần giải quyết các vấn đề về tính ổn định của API, tích hợp hoàn toàn với mô hình async/await của Rust và nâng cấp lớp mã hoá TLS dựa trên thư viện native-tls. Khi các tính năng này ổn định, nhà phát triển sẽ có thể xây dựng dịch vụ gRPC hoàn toàn bằng Rust mà không cần phụ thuộc vào bản triển khai C++, giảm latency và tối ưu hoá sử dụng bộ nhớ. Dự án cho thấy giá trị của việc phát hành preview sớm để thu thập phản hồi cộng đồng trước khi khóa API, giúp giảm nguy cơ thay đổi phá vỡ sau này. Lộ trình cũng nhấn mạnh tầm quan trọng của việc duy trì sự tương thích ngược với protobuf và cung cấp công cụ codegen tự động qua tonic-build.
Bài này cung cấp lộ trình phát triển tiếp theo của gRPC-Rust giúp lập trình viên nắm định hướng công nghệ và lên kế hoạch phát triển hệ thống hiệu quả.
Đọc tin ở đây, luyện code, học theo lộ trình và luyện IELTS trên các sản phẩm anh em — tất cả kết nối với nhau trong hệ sinh thái 8 Sync.
Cổng chính của hệ sinh thái: giới thiệu sản phẩm, blog và bảng giá trọn bộ.
Khám pháHọc theo lộ trình rõ từng chặng: video, quiz chấm tự động, certificate và mentor đang làm nghề.
Xem lộ trình1.000+ bài DSA, đề tiếng Việt, chấm tự động 7 ngôn ngữ — nhiều bài FREE, chạy ngay trên trình duyệt.
Luyện miễn phíChấm bốn kỹ năng IELTS bằng AI, phản hồi chi tiết theo rubric.
Dùng thử miễn phíAI IDE 22 MB cho dev Việt.
Tải miễn phíBộ nhớ tổ chức cho AI agent.
Khám pháAI trực Fanpage, tự sàng lọc lead.
Dùng thử