6 điểm bởi GN⁺ 2024-01-16 | 1 bình luận | Chia sẻ qua WhatsApp

Tóm tắt bản phát hành SQLite

  • SQLite bổ sung thuộc tính SQLITE_RESULT_SUBTYPE để tăng cường hỗ trợ cho các hàm SQL do ứng dụng định nghĩa.
  • Các hàm JSON SQL được cải thiện nhờ sử dụng JSONB, một định dạng cây phân tích nội bộ mới.
  • Bộ lập kế hoạch truy vấn đưa ra quyết định tốt hơn khi chọn chỉ mục, và tối ưu hóa SQLITE_DIRECT_OVERFLOW_READ được bật mặc định.
  • CLI được cải thiện, bao gồm hiển thị nội dung UTF-8 tốt hơn và tự động phát hiện việc phát lại script ".dump".

Sửa lỗi và tối ưu hóa

  • Nhiều lỗi đã được sửa và hiệu năng được tối ưu hóa.
  • Bổ sung các API ngôn ngữ C mới, sqlite3_get_clientdata()sqlite3_set_clientdata().
  • Lệnh PRAGMA integrity_check giờ đây xác minh tính nhất quán của các bảng ảo tích hợp.
  • Bộ lập kế hoạch truy vấn cải thiện cách xử lý đối với quét chỉ mục từng phần và các truy vấn con DISTINCT.

Cải thiện SQLite CLI và các tính năng khác

  • CLI cải thiện việc hiển thị nội dung UTF-8 và hạn chế việc sử dụng các hàm SQL nguy hiểm.
  • Lệnh PRAGMA integrity_check xác minh sự khớp nhau giữa chuỗi văn bản và chỉ mục.
  • Giao diện sqlite3_stmt_scanstatus_v2() được bổ sung.
  • Các lệnh gọi chạy lâu tương tự sqlite3_prepare() sẽ gọi callback trạng thái tiến trình và phản hồi với sqlite3_interrupt().

Ý kiến của GN⁺

  • Việc SQLite liên tục được cải thiện là rất quan trọng đối với độ ổn định và hiệu năng của hệ quản trị cơ sở dữ liệu.
  • Những cải tiến trong các hàm JSON SQL đặc biệt hữu ích cho lập trình viên web và nhà phát triển ứng dụng di động.
  • Việc tối ưu hóa bộ lập kế hoạch truy vấn giúp các truy vấn cơ sở dữ liệu phức tạp hiệu quả hơn, từ đó tiết kiệm tài nguyên hệ thống.

1 bình luận

 
GN⁺ 2024-01-16
Ý kiến trên Hacker News
  • Cách nhanh cho những ai muốn thử phiên bản SQLite mới trên macOS:

    • Cung cấp liên kết về cách dùng phiên bản SQLite cùng Python trên macOS.
    • Giải thích cách biên dịch thư viện SQLite bằng lệnh đơn giản và kiểm tra phiên bản trong Python.
    • Hướng dẫn lệnh datasette để thử giao diện web của SQLite.
  • Các cải tiến về JSONB trong SQLite:

    • Dùng JSONB có thể giúp hiệu năng các tác vụ liên quan đến JSON tăng gấp 3 lần.
    • JSONB trong hầu hết trường hợp có kích thước nhỏ hơn khoảng 5%~10% so với JSON văn bản.
    • Vì Notion Labs dùng rất nhiều JSON, nên có thể kỳ vọng cải thiện về mức sử dụng dung lượng đĩa.
  • Ghi chú phát hành tương tác cho phiên bản SQLite 3.45:

    • Nếu ghi chú phát hành chính thức quá nhàm chán, có cung cấp liên kết tới bản tương tác.
  • SQLite là một ví dụ ấn tượng về việc dự đoán trước các cảnh báo của trình biên dịch GCC trong tương lai:

    • Có đề cập đến việc SQLite chuẩn bị trước cho các cảnh báo mới của GCC.
  • Sự quan tâm đến SQLite cloud-native và đề nghị so sánh với PostgreSQL:

    • Bày tỏ sự quan tâm tới các dịch vụ SQLite chạy trên nền tảng đám mây.
    • Yêu cầu tài liệu so sánh giữa PostgreSQL và SQLite.
  • Đánh giá lại SQLite và sự thay đổi tích cực trong nhận thức:

    • Thừa nhận SQLite hữu ích cho ứng dụng thực tế, thay vì chỉ xem nó như một "cơ sở dữ liệu đồ chơi".
  • Nghi vấn về quyết định lưu số nguyên và số thực dưới dạng văn bản trong JSONB:

    • Chỉ trích cách lưu trữ dữ liệu này vì có thể làm hạn chế các trường hợp sử dụng của JSONB.
  • Việc JSONB đã từng được thảo luận trước đây:

    • Nhắc đến việc trước đó chủ đề này đã được thảo luận trên Hacker News với tiêu đề "JSONB has landed".
  • Thách thức trong việc lưu trữ và xử lý hiệu quả dữ liệu như JSON trong SQLite:

    • Giải thích mong muốn từ lâu của SQLite trong việc đưa JSONB vào và cách tiếp cận để hiện thực hóa điều đó.
  • Định dạng nội bộ của JSONB dùng ít dung lượng đĩa hơn JSON văn bản:

    • Chia sẻ thông tin rằng JSONB chiếm ít không gian đĩa hơn so với JSON văn bản.