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

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

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

  • คุณสามารถใช้ตัวคั่น “_” เป็นตัวเลขเพื่อให้แสดงตัวอักษรตัวเลขได้ชัดเจนยิ่งขึ้น (เช่น 1_234_567)
  • เพิ่มฟังก์ชัน json_pretty() SQL เพื่อสร้างเอาต์พุต JSON ที่อ่านได้ง่ายขึ้นซึ่งจัดรูปแบบโดยใช้การเยื้องแบบบล็อก
  • ขีดความสามารถของการดำเนินการ “PRAGMA Optimize” ได้รับการขยาย ซึ่งจะปรับฐานข้อมูลและสคีมาข้อมูลทั้งหมดให้เหมาะสมเพื่อให้ได้ประสิทธิภาพการสืบค้นที่ดีที่สุด มีการจำกัดระยะเวลาการวิเคราะห์ฐานข้อมูลที่ใช้โดยอัตโนมัติ ซึ่งช่วยลดเวลาการประมวลผลที่มากเกินไปสำหรับฐานข้อมูลขนาดใหญ่ เพิ่มบิตมาสก์ใหม่ "PRAGMA Optimize(0x10000)" เพื่อแยกตรวจสอบการอัปเดตในตารางทั้งหมด ให้การวิเคราะห์ตารางที่ไม่มีบันทึก sqlite_stat1 โดยอัตโนมัติ
  • เพิ่มการสนับสนุนสำหรับการทดแทน %G, %g, %U และ %V ให้กับฟังก์ชัน strftime() SQL
  • เพิ่มตัวแก้ไขเพดานและพื้นใหม่ให้กับฟังก์ชัน SQL สำหรับการทำงานกับวันที่และเวลาเพื่อควบคุมการจัดการวันที่คลุมเครือที่เกิดขึ้นระหว่างการดำเนินการที่เปลี่ยนวันที่ตามจำนวนเดือนหรือปีที่กำหนด ตรวจสอบให้แน่ใจว่าตัวแก้ไข utc และเวลาท้องถิ่นถูกละเว้น หาก SQLite รู้ว่าเวลาอยู่ในรูปแบบ UTC หรือการแสดงเวลาท้องถิ่นแล้ว
  • มีการเพิ่มประสิทธิภาพให้กับผู้วางแผนแบบสอบถาม สำหรับนิพจน์ INSERT ที่มีค่าหลายพันค่าในส่วน VALUES การเพิ่มประสิทธิภาพ "VALUES-as-coroutine" จะถูกเปิดใช้งานตามค่าเริ่มต้น ซึ่งทำให้การแยกวิเคราะห์นิพจน์ดังกล่าวเร็วขึ้นประมาณสองเท่าและลดการใช้หน่วยความจำลงครึ่งหนึ่ง สำหรับการสืบค้นในรูปแบบ “SELECT count(DISTINCT col) FROM …” อนุญาตให้ใช้ดัชนีได้ แม้ว่าขนาดของระเบียนในดัชนีจะไม่น้อยกว่าระเบียนในตารางก็ตาม ตรรกะสำหรับการพิจารณาสถานการณ์ที่ระบุค่าคงที่ในอาร์กิวเมนต์ของฟังก์ชัน SQL ได้รับการปรับปรุงแล้ว เปิดใช้งานการเพิ่มประสิทธิภาพแบบพุชดาวน์เพื่อนำไปใช้กับส่วนคำสั่ง WHERE ที่มีแบบสอบถามย่อยที่ไม่เกี่ยวข้อง
  • ตรรกะสำหรับการจัดการสแต็กโอเวอร์โฟลว์มีการเปลี่ยนแปลง - เมื่อตรวจพบหน่วยความจำไม่เพียงพอสำหรับสแต็ก ตอนนี้ parser จะพยายามจัดสรรหน่วยความจำเพิ่มเติมจากฮีป แทนที่จะแสดงข้อผิดพลาด "parser stack overflow"
  • JSON อนุญาตให้ระบุอักขระควบคุมในตัวอักษรสตริง JSON5 ตรรกะการทำงานของตัวดำเนินการ “->” และ “->>” มีการเปลี่ยนแปลง เมื่อตัวถูกดำเนินการสตริงทางด้านขวามีเพียงตัวเลขเท่านั้น (โดยการเปรียบเทียบกับ PostgreSQL ขณะนี้ตัวถูกดำเนินการดังกล่าวจะถูกประมวลผลเป็นสตริง)
  • ค่า DEFAULT ช่วยให้สามารถระบุตัวอักษรเลขฐานสิบหกขนาดใหญ่ในคอลัมน์ตารางได้

ที่มา: opennet.ru

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