การเปิดตัว SQLite 3.40

การเปิดตัว SQLite 3.40 ซึ่งเป็น DBMS ที่มีน้ำหนักเบาซึ่งออกแบบเป็นไลบรารีปลั๊กอินได้รับการเผยแพร่แล้ว รหัส SQLite เผยแพร่ในโดเมนสาธารณะ เช่น สามารถใช้ได้โดยไม่มีข้อจำกัดและไม่มีค่าใช้จ่ายสำหรับวัตถุประสงค์ใดๆ การสนับสนุนทางการเงินสำหรับนักพัฒนา SQLite มีให้โดยสมาคมที่สร้างขึ้นเป็นพิเศษ ซึ่งรวมถึงบริษัทต่างๆ เช่น Adobe, Oracle, Mozilla, Bentley และ Bloomberg

การเปลี่ยนแปลงที่สำคัญ:

  • ใช้ความสามารถในการทดลองเพื่อคอมไพล์ SQLite เป็นโค้ด WebAssembly ระดับกลางที่สามารถเรียกใช้ในเว็บเบราว์เซอร์และเหมาะสำหรับการจัดระเบียบงานกับฐานข้อมูลจากเว็บแอปพลิเคชันในภาษา JavaScript นักพัฒนาเว็บมีอินเทอร์เฟซเชิงวัตถุระดับสูงสำหรับการทำงานกับข้อมูลในรูปแบบของ sql.js หรือ Node.js การรวม C API ระดับต่ำ และ API ตามกลไก Web Worker ที่ช่วยให้คุณ เพื่อสร้างตัวจัดการแบบอะซิงโครนัสที่ทำงานบนเธรดแยกกัน ข้อมูลที่เว็บแอปพลิเคชันจัดเก็บไว้ใน SQLite เวอร์ชัน WASM สามารถเก็บไว้ที่ฝั่งไคลเอ็นต์โดยใช้ OPFS (Origin-Private FileSystem) หรือ window.localStorage API
  • มีการเพิ่มส่วนขยายการกู้คืนซึ่งออกแบบมาเพื่อกู้คืนข้อมูลจากไฟล์ที่เสียหายจากฐานข้อมูล อินเทอร์เฟซบรรทัดคำสั่งใช้คำสั่ง ".recover" เพื่อกู้คืน
  • ปรับปรุงประสิทธิภาพของตัววางแผนคิวรี ข้อจำกัดถูกนำออกเมื่อใช้ดัชนีกับตารางที่มีคอลัมน์มากกว่า 63 คอลัมน์ (ก่อนหน้านี้ ไม่ได้ใช้การจัดทำดัชนีสำหรับการดำเนินการกับคอลัมน์ที่มีเลขลำดับเกิน 63) ปรับปรุงการจัดทำดัชนีของค่าที่ใช้ในนิพจน์ หยุดการโหลดสตริงและ blobs ขนาดใหญ่จากดิสก์เมื่อประมวลผลตัวดำเนินการที่ไม่เป็นโมฆะและเป็นโมฆะ ไม่รวมการทำให้เป็นจริงของมุมมองซึ่งทำการสแกนแบบสมบูรณ์เพียงครั้งเดียว
  • ในโค้ดเบส แทนที่จะใช้ประเภท "char *" จะใช้ประเภท sqlite3_filename แยกต่างหากเพื่อแสดงชื่อไฟล์
  • เพิ่มฟังก์ชันภายในของ sqlite3_value_encoding()
  • เพิ่มโหมด SQLITE_DBCONFIG_DEFENSIVE ซึ่งห้ามไม่ให้เปลี่ยนเวอร์ชันสคีมาที่เก็บข้อมูล
  • เพิ่มการตรวจสอบเพิ่มเติมในการใช้งานพารามิเตอร์ "PRAGMA Integrity_check" ตัวอย่างเช่น ตารางที่ไม่มีแอตทริบิวต์ STRICT จะต้องไม่มีค่าตัวเลขในคอลัมน์ TEXT และค่าสตริงที่มีตัวเลขในคอลัมน์ NUMERIC เพิ่มการตรวจสอบความถูกต้องของลำดับแถวในตารางด้วยเครื่องหมาย "ไม่มีแถว"
  • นิพจน์ "VACUUM INTO" เป็นไปตามการตั้งค่า "PRAGMA synchronous"
  • เพิ่มตัวเลือกการสร้าง SQLITE_MAX_ALLOCATION_SIZE เพื่อจำกัดขนาดของบล็อกเมื่อจัดสรรหน่วยความจำ
  • อัลกอริทึมสำหรับสร้างตัวเลขสุ่มหลอกที่สร้างขึ้นใน SQLite ถูกย้ายจากการใช้การเข้ารหัสสตรีม RC4 ไปที่ Chacha20
  • อนุญาตให้ใช้ดัชนีที่มีชื่อเดียวกันใน data schema ที่แตกต่างกัน
  • มีการปรับปรุงประสิทธิภาพเพื่อลดภาระของ CPU ลงประมาณ 1% ระหว่างกิจกรรมทั่วไป

ที่มา: opennet.ru

เพิ่มความคิดเห็น