SQLite 3.35 มาพร้อมกับฟังก์ชันคณิตศาสตร์ในตัวใหม่และอื่น ๆ

เปิดตัว SQLite 3.35 แล้ว และในตัวจัดการฐานข้อมูลรุ่นใหม่นี้ การเพิ่มฟังก์ชันทางคณิตศาสตร์จะถูกเน้น เช่นเดียวกับการสนับสนุนสำหรับนิพจน์ ALTER TABLE DROP COLUMN เพื่อดร็อปคอลัมน์จากตารางการปรับปรุงการดำเนินการและอื่น ๆ

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

คุณสมบัติใหม่หลักของ SQLite 3.35

ตามที่กล่าวไว้ตอนต้นในเวอร์ชันใหม่นี้ เพิ่มฟังก์ชันคณิตศาสตร์ในตัว (log2 (), cos (), tg (), exp (), ln (), ธาร () ฯลฯ ) ที่สามารถใช้ใน SQL ในการเปิดใช้งานฟังก์ชันในตัวจำเป็นต้องใช้ชุดประกอบที่มีตัวเลือก "-DSQLITE_ENABLE_MATH_FUNCTIONS"

การแสดงออก "ALTER TABLE DROP COLUMN" รองรับการวางคอลัมน์จากตารางแล้ว และลบข้อมูลที่เก็บไว้ก่อนหน้านี้ในคอลัมน์นี้

การดำเนินการของ UPSERT (เพิ่มหรือแก้ไข) ซึ่งช่วยให้คุณสามารถใช้นิพจน์เช่น "INSERT ON CONFLICT DO NOTHING / UPDATE" เพื่อละเว้นข้อผิดพลาดหรือทำการอัปเดตแทนการแทรกหากไม่สามารถเพิ่มข้อมูลผ่าน "INSERT" ได้ (ตัวอย่างเช่นหาก บันทึก, UPDATE สามารถทำได้แทน INSERT)

ในเวอร์ชันใหม่อนุญาตให้ระบุหลายบล็อก«ในความขัดแย้ง«ซึ่งจะดำเนินการตามลำดับ ในบล็อก "ON CONFLICT" สุดท้ายไม่อนุญาตให้ระบุพารามิเตอร์นิยามความขัดแย้งเพื่อใช้ "DO UPDATE"

การดำเนินงาน DELETE, INSERT และ UPDATE รองรับนิพจน์ RETURNINGที่สามารถใช้ได้ เพื่อแสดงเนื้อหาของบันทึกที่ถูกลบแทรกหรือแก้ไข ตัวอย่างเช่น "แทรกลงใน ... รหัสการส่งคืน" จะส่งคืนตัวระบุแถวที่เพิ่มและ "อัปเดต ... ราคาที่กำหนด = ราคา * 1.10 ราคาส่งคืน" จะส่งคืนค่าของราคาที่อัปเดต

สำหรับนิพจน์ตารางทั่วไป (Common Table Expression, CTE) ซึ่งอนุญาตให้ใช้ชุดผลลัพธ์ที่ตั้งชื่อทางโลกโดยใช้ด้วยขอให้โอเปอเรเตอร์อนุมัติการเลือกโหมด« MATERIALIZED »และ« NOT MATERIALIZED »

  1. "MATERIALIZED" หมายถึงการแคชแบบสอบถามที่ระบุในมุมมองในตารางทางกายภาพที่แยกต่างหากพร้อมกับการดึงข้อมูลจากตารางนี้ในภายหลัง
  2. และด้วย "NOT MATERIALIZED" ระบบจะดำเนินการสืบค้นซ้ำทุกครั้งที่มีการเข้าถึงข้อมูลพร็อพเพอร์ตี้ ในขั้นต้น SQLite มีค่าเริ่มต้นเป็น "NOT MATERIALIZED" แต่ตอนนี้ได้เปลี่ยนเป็น "MATERIALIZED" สำหรับ CTE ที่ใช้มากกว่าหนึ่งครั้ง

จากการเปลี่ยนแปลงอื่น ๆ ที่โดดเด่นกว่ารุ่นใหม่นี้:

  • ลดการใช้หน่วยความจำเมื่อดำเนินการ VACUUM สำหรับฐานข้อมูลที่มีค่าขนาดใหญ่มากในประเภท TEXT หรือ BLOB
  • ได้ดำเนินการเพื่อเพิ่มประสิทธิภาพของเครื่องมือเพิ่มประสิทธิภาพและตัวกำหนดตารางเวลาแบบสอบถาม
  • เพิ่มการเพิ่มประสิทธิภาพเมื่อใช้ฟังก์ชันต่ำสุดและสูงสุดด้วยนิพจน์ "IN"
  • การดำเนินการของคำสั่ง EXISTS ได้รับการเร่งขึ้น
  • การขยายเคียวรีย่อยของนิพจน์ UNION ALL ที่ใช้ใน JOIN ถูกนำไปใช้
  • ดัชนีที่ใช้สำหรับนิพจน์ IS NOT NULL
  • การแปลง "x IS NULL" และ "x IS NOT NULL" เป็น FALSE หรือ TRUE มีไว้สำหรับคอลัมน์ที่มีค่าสถานะ "NOT NULL"
  • การตรวจสอบคีย์ภายนอกใน UPDATE จะถูกข้ามไปหากการดำเนินการไม่เปลี่ยนคอลัมน์ที่เกี่ยวข้องกับคีย์ภายนอก
  • การย้ายส่วนของคำสั่ง WHERE ไปยังแบบสอบถามย่อยที่มีฟังก์ชันหน้าต่างจะได้รับอนุญาตหากส่วนเหล่านี้ถูก จำกัด ให้ทำงานกับค่าคงที่และสำเนาของนิพจน์อนุประโยค "PARTITION BY" ที่ใช้ในฟังก์ชันหน้าต่าง

การเปลี่ยนแปลงอินเทอร์เฟซบรรทัดคำสั่ง:

  • เพิ่มคำสั่ง ".filectrl data_version"
  • คำสั่ง ".once" และ ".output" เพิ่มการรองรับสำหรับการส่งเอาต์พุตไปยังคอนโทรลเลอร์ที่เรียกว่าโดยใช้ท่อที่ไม่มีชื่อ ("|")
  • คำสั่ง ".stats" เพิ่มอาร์กิวเมนต์ "stmt" และ "vmstep" เพื่อแสดงสถิติบนตัวนับและนิพจน์ของเครื่องเสมือน

ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม เกี่ยวกับ SQLite เวอร์ชันใหม่นี้คุณสามารถตรวจสอบรายละเอียดได้ โดยไปที่ลิงค์ต่อไปนี้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา