A research prototype adds B-link-style concurrent page splits to MariaDB's InnoDB engine, removing the index-wide latch that serializes structural modification operations during page splits. The design, sketched with Monty Widenius and based on Zhao Song's earlier proposal, allows child splits to become visible before the parent tree is fully updated, using a two-phase publication with high keys and right links. On a split-heavy benchmark (2.5M preload rows, 32 threads, 24 GiB buffer pool), the prototype reached 102,838 inserts per second versus 19,676 for vanilla MariaDB, a 5.23x improvement, with p95 latency dropping from 8.28ms to 0.56ms. The implementation touches page representation, cursor navigation, mini-transaction ownership, and recovery, and remains a proof of concept with limitations including no in-place index conversion, restricted DDL, and non-persistent page pools.
Source: https://mariadb.org/from-a-chocolate-wrapper-to-concurrent-innodb-page-splits. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Đang tải bình luận…
Bài viết mô tả việc đội phát triển gặp vấn đề N+1 khi truy vấn danh sách đối tượng và quyết định áp dụng eager loading để giảm số lượng query. Sau khi bật eager loading, tổng số query giảm từ 801 xuống chỉ một câu SQL duy nhất. Tuy nhiên, câu query duy nhất này trả về lượng dữ liệu lớn hơn khả năng bộ nhớ của ứng dụng, khiến mức sử dụng RAM tăng lên gấp ba lần so với trước khi tối ưu. Kết quả là, mặc dù hiệu suất về số lượng query cải thiện, ứng dụng dễ gặp lỗi out‑of‑memory hoặc trễ do việc xử lý khối dữ liệu lớn. Bài học là khi tối ưu N+1 cần cân bằng giữa giảm query và kiểm soát lượng dữ liệu được tải, ví dụ qua việc chọn trường cụ thể, sử dụng pagination hoặc batch loading thay vì eager loading toàn bộ liên kết.
Bài viết này dạy bài học quý giá rằng tối ưu hóa database không lúc nào cũng tốt nếu không cân nhắc đến giới hạn tài nguyên hệ thống.
Trên instance GCP c4d-standard-4, tiến trình MySQL tiêu tốn 10.4 GB RAM dù innodb_buffer_pool_size chỉ được thiết lập là 7168 MB. Khoảng trống này được truy qua 4 lớp: dự kiến overhead từ InnoDB/Performance Schema/thread-buffer, khoảng ~9% mmap chunk padding trên buffer pool, sự tích tụ dirty pages của jemalloc trên DR replica không hoạt động, và nguyên nhân gốc - MALLOC_CONF không được thiết lập khiến decay của background_thread bị vô hiệu hóa. Các sửa chữa gồm giảm buffer pool thành bội số sạch (6144 MB), cắt giảm max_connections từ 3000 xuống 500, bật background_thread của jemalloc với decay 5 giây, và thêm swap để phòng OOM, giúp giảm RSS xuống còn ~7.9 GB. Bài viết cung cấp kiến thức sâu về quản lý memory của MySQL khi sử dụng jemalloc, cách tối ưu buffer pool size và thiết lập MALLOC_CONF phù hợp.
Lập trình viên cần đọc bài này để hiểu cách điều khiển và tối ưu hóa bộ nhớ InnoDB trên MySQL khi các tham số cơ bản như innodb_buffer_pool_size không đủ để giải quyết cảnh báo nhớ, khi hệ thống vẫn tiêu thụ nhiều bộ nhớ hơn dự kiến do các yếu tố như cấu hình bộ nhớ phân vùng, quá trình làm sạch nhớ của jemalloc, hoặc tình trạng replica hoạt động không hiệu quả.
Trong hệ thống version control như Git, các thay đổi schema tồn tại trong các file riêng biệt nên hiếm khi gây xung đột merge. Việc lưu trữ migration files trong Git không đồng nghĩa với việc quản lý chúng hiệu quả bởi Git không hiểu ngữ cảnh của các thay đổi database schema. Hệ quả là các migration files có thể trở nên lỗi thời hoặc gây khó khăn trong việc tracking changes thực tế. Lập trình viên nên cân nhắc sử dụng các công cụ chuyên dụng như Liquibase hoặc Flyway để quản lý schema thay vì phụ thuộc hoàn toàn vào Git tracking.
Lập trình viên nên đọc bài này để hiểu cách quản lý migration files trong Git để tránh hiểu lầm về việc các thay đổi schema được tự động hợp nhất.
PostgreSQL 19 ra mắt bản cập nhật chính thức và đi kèm với bốn view hệ thống mới. Những view này cho phép truy vấn trực tiếp về tình trạng khóa (lock contention), quá trình phục hồi (recovery state), mức độ ưu tiên của autovacuum và cách cấp phát bộ nhớ chia sẻ động (dynamic shared memory allocations). Trước đây, quản trị viên thường phải dựa trên các extension bên ngoài hoặc truy vấn các pg_catalog phức tạp để thu thập thông tin tương tự. Với các view mới, việc giám sát và chẩn đoán các vấn đề hiệu suất trở nên nhanh chóng và không cần cài đặt thêm thành phần. Điều này cho thấy việc cải thiện khả năng quan sát nội bộ của PostgreSQL có thể giảm thời gian debug và giúp tối ưu hoá cấu hình mà không cần phụ thuộc vào công cụ của bên thứ ba.
Bài viết này giúp lập trình viên dễ dàng kiểm tra các vấn đề về lock contention, trạng thái phục hồi, ưu tiên autovacuum và phân bổ bộ nhớ chia sẻ động trong PostgreSQL 19.
LibreDB Studio là IDE SQL mã nguồn mở, tự host cho PostgreSQL chạy trên trình duyệt, triển khai dưới dạng container, Helm chart hoặc npm package. Công cụ hỗ trợ pooling connection, transaction rõ ràng, giám sát thông qua pg_stat_* và xác thực qua local account hoặc OIDC với kiểm soát quyền truy cập.
Lập trình viên phát triển ứng dụng PostgreSQL nên đọc để tìm hiểu cách tự host một IDE SQL trực tuyến, tối ưu hóa hiệu năng với cơ chế kết nối pooled và tự động rollback, đồng thời khám phá tính năng hỗ trợ quyền truy cập RBAC và hỗ trợ OIDC, giúp streamline quá trình phát triển và quản lý cơ sở dữ liệu.
Bài viết thực nghiệm trên PostgreSQL bằng cách tăng số kết nối từ 1 lên 400 để đo throughput và latency. Kết quả cho thấy throughput đạt đỉnh ở khoảng 48 kết nối, sau đó giảm 37% khi tăng lên 400 kết nối, đồng thời latency tăng gấp 13 lần. Nguyên nhân là sự cạnh tranh về tài nguyên bộ nhớ và luồng trong PostgreSQL khi số kết nối vượt quá khả năng xử lý của CPU và bộ nhớ đệm, gây ra hiện tượng thrashing và tăng thời gian chờ lock. Điều này dạy chúng ta nên đo lường đường cong hiệu suất và chọn kích thước connection pool phù hợp, thay vì đặt giá trị cao nhất có thể.
Bài viết này giúp lập trình viên hiểu cách tối ưu kích thước connection pool để đạt hiệu suất cao nhất.
DumboDB công bố hỗ trợ collations, cho phép sắp xếp và so sánh dữ liệu theo quy tắc ngôn ngữ cụ thể. Kết quả này xuất phát từ việc tích hợp tính năng của MongoDB và Git vào một nền tảng mới. Với collations, các ứng dụng có thể lọc và sắp xếp dữ liệu theo ngôn ngữ người dùng, giảm sai lệch trong xử lý ngôn ngữ. Điều này minh họa lợi ích của việc áp dụng các tiêu chuẩn sắp xếp ngôn ngữ để cải thiện hiệu suất. Do đó, nếu dự án của bạn xử lý dữ liệu đa ngôn ngữ, cân nhắc sử dụng collations trong DumboDB.
Bài viết này giúp bạn hiểu cách DumboDB hỗ trợ collation, giống như một sự kết hợp giữa MongoDB và Git.
Bài viết bắt đầu bằng việc tạo bảng comments với 1 triệu bản ghi trong PostgreSQL để đánh giá hiệu suất các chiến lược indexing. Tác giả chạy EXPLAIN ANALYZE trên các truy vấn lọc và sắp xếp theo nhiều cột, đo thời gian thực thi của sequential scan là khoảng 17 ms khi không có index. Khi tạo chỉ mục đơn cột trên cột được dùng trong WHERE, thời gian giảm xuống dưới 2 ms; nhưng chỉ mục hợp thành (c1, c2) chỉ hiệu quả khi thứ tự cột trong chỉ mục khớp với thứ tự sử dụng trong predicate và ORDER BY. Đảo ngược thứ tự cột trong chỉ mục hợp thành khiến planner phải thực hiện index scan kết hợp với recheck hoặc fallback về sequential scan, làm tăng thời gian lên 5‑8 ms tùy thuộc vào selectivity. Bài học là: thiết kế chỉ mục hợp thành cần đặt cột có tính chọn lọc cao hoặc được sử dụng trong điều kiện bằng trước, sau đó mới là cột dùng cho range hoặc sắp xếp, và luôn xác thực bằng EXPLAIN ANALYZE trên dữ liệu thực tế.
Bài viết này giúp lập trình viên tối ưu hóa hiệu suất truy vấn SQL bằng cách giải thích cách tạo và sử dụng chỉ mục composite đúng cách.
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 it