SQLite

ภาพหน้าจอของซอฟแวร์:
SQLite
รายละเอียดซอฟแวร์:
รุ่น: 3.24.0 การปรับปรุง
วันที่อัพโหลด: 22 Jun 18
ผู้พัฒนา: D. Richard Hipp
การอนุญาต: ฟรี
ความนิยม: 82

Rating: 3.5/5 (Total Votes: 2)

SQLite เป็นไลบรารี C แบบโอเพ่นซอร์สที่หลากหลายฟรีและมีขนาดเล็กที่ใช้เครื่องมือฐานข้อมูล SQL ที่มีอยู่ในตัวทำธุรกรรม เป็นเครื่องมือฐานข้อมูล SQL ที่ใช้กันมากที่สุดในโลก


คุณสมบัติได้อย่างรวดเร็ว

คุณลักษณะสำคัญ ได้แก่ การสนับสนุนการทำธุรกรรมแบบแยก, อะตอม, คงทนและสม่ำเสมอ, การใช้ SQL92, ไฟล์ฐานข้อมูลสามารถใช้งานร่วมกันได้อย่างอิสระระหว่างเครื่องคอมพิวเตอร์, สนับสนุนฐานข้อมูลขนาด 2 เทราไบต์, การสนับสนุนกิกะไบต์ขนาด blobs และสตริง, รหัสขนาดเล็ก รวมทั้ง API (Application Programming Interface) ที่ใช้งานง่ายและง่ายมาก

นอกจากนี้ SQLite ไม่จำเป็นต้องมีการกำหนดค่าเริ่มต้นหรือการบริหารจัดการต่อไปช่วยให้นักพัฒนาซอฟต์แวร์สามารถจัดเก็บฐานข้อมูลทั้งหมดในดิสก์ดิสก์ข้ามแพลตฟอร์มแบบเดียวซึ่งเหมาะสำหรับการใช้รูปแบบไฟล์แอพพลิเคชันไม่มี dependencies ภายนอกมาพร้อมกับ built- ใน TCL (Tool Command Language) bindings และเอกสารประกอบการทั้งหมด

การผูกสำหรับภาษาโปรแกรมอื่น ๆ หลายภาษามีให้แยกกัน ซอร์สโค้ดของมันได้รับความเห็นเป็นอย่างดีและมาพร้อมกับไคลเอ็นต์ CLI แบบสแตนด์อโลน (Command-line Interface) แบบสแตนด์อโลนที่ได้รับการออกแบบมาจากออฟเซตเพื่อใช้สำหรับการจัดการฐานข้อมูล SQLite


สิ่งที่ฉันสามารถใช้เพื่อ?

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


ภายใต้ฝาครอบและ OSes ที่รองรับ

การกระจาย SQLite มาพร้อมกับโปรแกรมเข้าถึงบรรทัดคำสั่งแบบสแตนด์อโลน (sqlite) ที่สามารถใช้เพื่อจัดการฐานข้อมูล SQLite และทำหน้าที่เป็นตัวอย่างของวิธีใช้ไลบรารี SQLite เขียนในภาษาโปรแกรม ANSI-C ทั้งหมด

ระบบปฏิบัติการเดสก์ท็อปที่สนับสนุน ได้แก่ GNU / Linux, Mac OS X และ Microsoft Windows ระบบปฏิบัติการมือถือที่สนับสนุน ได้แก่ Android และ iOS ได้รับการทดสอบด้วยแพลตฟอร์มฮาร์ดแวร์ 32 บิตและ 64 บิตเรียบร้อยแล้วและสามารถพกพาไปยังระบบปฏิบัติการอื่น ๆ ได้อย่างง่ายดาย

มีอะไรใหม่ ในรุ่นนี้: p>

  • ไฮไลต์ของรุ่นนี้รวมถึงการสนับสนุน UPSERT ของ PostgreSQL และประสิทธิภาพที่ดีขึ้นโดยเฉพาะสำหรับคำสั่ง ORDER BY LIMIT

มีอะไรใหม่ ในเวอร์ชัน:

  • ใช้ประโยชน์จากความสามารถในการเขียนอะตอมในระบบแฟ้ม F2FS เมื่อมีให้ใช้งานสำหรับค่าใช้จ่ายในการทำธุรกรรมที่ลดลงอย่างมาก ปัจจุบันนี้ต้องใช้ตัวเลือกการคอมไพล์ข้อมูล SQLITE_ENABLE_BATCH_ATOMIC_WRITE
  • อนุญาตคำสั่ง ATTACH และ DETACH เพื่อทำงานภายในธุรกรรม
  • อนุญาตให้ไม่มีตารางเสมือนจริง ROWID ที่จะสามารถเขียนได้หากคีย์หลักมีตรงกับหนึ่งคอลัมน์
  • ส่วน & quot; fsync () & quot; ที่เกิดขึ้นหลังจากที่ส่วนหัวถูกเขียนขึ้นในการตั้งค่า WAL ตอนนี้ใช้การตั้งค่าการซิงค์สำหรับจุดตรวจสอบ ซึ่งหมายความว่าจะใช้แท็ก & quot; fullfsync & quot; on macs ถ้าตั้งค่า PRAGMA checkpoint_fullfsync ไว้
  • ฟังก์ชัน sqlite3_sourceid () พยายามตรวจหาว่ามีการปรับเปลี่ยนซอร์สโค้ดจากสิ่งที่ถูกตรวจสอบลงในตัวควบคุมเวอร์ชันและถ้ามีการแก้ไขอักขระสี่ตัวสุดท้ายของแฮชเวอร์ชันจะแสดงเป็น & quot; alt1 & quot; หรือ & quot; alt2 & quot; มีวัตถุประสงค์เพื่อตรวจสอบการแก้ไขโดยไม่ได้ตั้งใจและ / หรือประมาท คนปลอมตัวสามารถทำลายคุณลักษณะนี้ได้
  • ปรับปรุงการตั้งชื่อคอลัมน์สำหรับการสร้างตาราง TABLE AS โดยใช้แบบสอบถามรวมที่ด้านขวามือ
  • ลดจำนวน & quot; stat () & quot; สายระบบที่ออกโดย UNIX VFS
  • ปรับปรุงการเพิ่มประสิทธิภาพ LIKE เพื่อให้ทำงานร่วมกับคำสั่ง ESCAPE
  • ปรับปรุง PRAGMA integrity_check และ PRAGMA quick_check เพื่อตรวจจับความเสียหายของแถวปิดบังที่พวกเขาเคยสูญหายไป ปรับปรุงทั้ง pragmas เพื่อให้ข้อความแสดงข้อผิดพลาดมากกว่า SQLITE_CORRUPT เมื่อพบกับความเสียหายในระเบียน
  • ขณะนี้นักวางแผนแบบสอบถามชอบที่จะใช้งานย่อยย่อย FROM-clause โดยใช้ co-routines แทนที่จะใช้การเพิ่มประสิทธิภาพ flattener แบบสอบถาม การสนับสนุนการใช้ co-routines สำหรับ subqueries อาจไม่สามารถปิดใช้งานได้อีกต่อไป
  • ส่งผ่านข้อมูลเกี่ยวกับ! =, IS, IS NOT, NOT NULL และ IS NULL ในเมธอด xBestIndex ของตารางเสมือนจริง
  • ปรับปรุงตารางเสมือนจริง CSV เพื่อให้รับแถวสุดท้ายของการป้อนข้อมูลหากอักขระตัวสุดท้ายของบรรทัดสุดท้ายหายไป
  • ลบเครื่องหมาย & quot; ขีดข่วน "ที่ไม่ค่อยใช้ ตัวจัดสรรหน่วยความจำ แทนที่ด้วยการตั้งค่าคอนฟิกูเรชัน SQLITE_CONFIG_SMALL_MALLOC ซึ่งจะให้คำแนะนำ SQLite ว่าควรหลีกเลี่ยงการจัดสรรหน่วยความจำขนาดใหญ่เมื่อทำได้
  • เพิ่มตารางเสมือนแบบฝอยไปยังส่วนขยายตารางเสมือนที่มีอยู่แล้ว
  • เพิ่มตารางเสมือน sqlite_dbpage สำหรับการเข้าถึงโดยตรงไปยังหน้าต่างๆของไฟล์ฐานข้อมูล ซอร์สโค้ดถูกสร้างขึ้นในการควบรวมและเปิดใช้งานโดยใช้ตัวเลือกการคอมไพล์เวลา -DSQLITE_ENABLE_DBPAGE_VTAB
  • เพิ่มชนิดใหม่ของตารางเสมือน fts5vocab - & quot; ตัวอย่าง & quot; - ที่ให้สิทธิ์เข้าถึงดัชนีข้อความแบบเต็ม FTS5 ในระดับที่ต่ำที่สุด
  • ลบการเรียกไปที่ rand_s () ใน Windows VFS เนื่องจากปัญหานี้ทำให้เกิดปัญหาใน Firefox บนแล็ปท็อปรุ่นเก่าบางรุ่น
  • รหัสแหล่ง src / shell.c ไปยังเชลล์บรรทัดคำสั่งไม่อยู่ภายใต้การควบคุมเวอร์ชัน ขณะนี้ไฟล์ดังกล่าวถูกสร้างขึ้นโดยเป็นส่วนหนึ่งของกระบวนการสร้าง
  • การเบี่ยงเบนมาตรฐานเบ็ดเตล็ดช่วยลดการใช้งาน CPU ประมาณ 2.1%
  • การแก้ไขข้อบกพร่อง:
  • แก้ไขข้อความยืนยันที่ผิดพลาด () ที่ OSSFuzz ค้นพบ ตั๋ว cb91bf4290c211d
  • แก้ไขการรั่วไหลของหน่วยความจำที่ไม่ชัดเจนใน sqlite3_result_pointer () ตั๋ว 7486aa54b968e9b
  • หลีกเลี่ยงข้อผิดพลาดในการใช้งานหลังจากปราศจากข้อผิดพลาดโดยการเลื่อนการตั้งค่าคีมาจนกว่าจะเสร็จสิ้นการวางแผนการค้นหา ตั๋ว be436a7f4587ce5
  • ใช้เฉพาะดัชนีในการแสดงออกเพื่อเพิ่มประสิทธิภาพ ORDER BY หรือ GROUP BY หาก COLLATE ถูกต้อง ตั๋ว e20dd54ab0e4383
  • แก้ไขข้อผิดพลาดในการยืนยันซึ่งเกิดขึ้นเมื่อนิพจน์ในนิพจน์ทั่วไปเป็นค่าคงที่ ตั๋ว aa98619ad08ddca
  • แก้ไขข้อผิดพลาดการยืนยันที่อาจเกิดขึ้นหลังจาก PRAGMA reverse_unordered_selects ตั๋ว cb91bf4290c211d
  • แก้ไข segfault ที่อาจเกิดขึ้นสำหรับข้อความค้นหาที่ใช้ฟังก์ชันที่มีค่าในตารางในแบบสอบถามย่อย IN หรือ EXISTS ตั๋ว b899b6042f97f5
  • แก้ปัญหาปัญหาล้นจำนวนเต็มที่อาจเกิดขึ้นเมื่อคอมไพล์นิพจน์ตารางที่น่ากลัวโดยเฉพาะ นี่เป็นปัญหาอื่นที่ OSSFuzz ค้นพบ เช็คอิน 6ee8cb6ae5.
  • อ่านข้อความที่อ่านไม่ออกเมื่ออ่านไฟล์ฐานข้อมูลที่เสียหายปัญหาที่ตรวจพบโดย Natalie Silvanovich จาก Google Project Zero เช็คอิน 04925dee41a21f.

  • มีอะไรใหม่ ในเวอร์ชัน 3.20.1:

    • รุ่น patch patch 3.20.1 จะเปลี่ยนโค้ดสองบรรทัดในอินเทอร์เฟซ sqlite3_result_pointer () เพื่อแก้ไขปัญหาการรั่วไหลของหน่วยความจำที่หายาก

    มีอะไรใหม่ ในเวอร์ชัน 3.9.2:

    • SQLite เวอร์ชัน 3.9.2 เป็นโปรแกรมแก้ไขการแก้ไขข้อบกพร่องสองข้อที่ปิดบังไว้

    มีอะไรใหม่ ในเวอร์ชัน 3.8.9:

    • คุณลักษณะใหม่ในรุ่นนี้ ได้แก่ คำสั่ง PRAGMA index_xinfo, อินเทอร์เฟซ sqlite3_status64 () และคำสั่ง ".dbinfo" ของเชลล์บรรทัดคำสั่ง

    มีอะไรใหม่ ในเวอร์ชัน 3.8.8.2:

    • การแก้ไขแพทช์ 3.8.8.2 จะแก้ไขปัญหาเล็ก ๆ น้อยชิ้นหนึ่ง: ทำให้แน่ใจได้ว่าการดำเนินงาน sqlite3_wal_checkpoint (TRUNCATE) จะตัดทอนบันทึกการเขียนล่วงหน้าเสมอแม้ว่าบันทึกจะถูกรีเซ็ตแล้วและไม่มีเนื้อหาใหม่ ไม่ชัดเจนว่านี่คือการแก้ไขข้อบกพร่องหรือคุณลักษณะใหม่ ๆ
    • มีบางอย่างเช่นนี้โดยปกติจะเข้าสู่การเผยแพร่ตามกำหนดการครั้งถัดไปตามปกติ แต่ผู้ใช้ SQLite ที่โดดเด่นต้องการการรีบเร่งเพื่อให้เรามีความสุขที่จะรีบเร่งผ่านทางแพทช์นี้
    • ไม่มีเหตุผลที่จะอัปเกรดได้หากคุณไม่ต้องการใช้งานขั้นสูงของ sqlite3_wal_checkpoint (TRUNCATE)

    มีอะไรใหม่ ในเวอร์ชัน 3.8.8.1:

    • แก้ไขข้อผิดพลาดในตรรกะการจัดเรียงที่นำเสนอตั้งแต่เวอร์ชัน 3.8.4 ซึ่งอาจทำให้เอาต์พุตปรากฏในลำดับที่ไม่ถูกต้องในข้อความค้นหาที่มีคำสั่ง ORDER BY ข้อ จำกัด LIMIT และมีคอลัมน์ประมาณ 60 คอลัมน์หรือมากกว่า ชุดผลลัพธ์ ตั๋ว f97c4637102a3ae72b79.
    • SQLITE_SOURCE_ID: "2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55"
    • SHA1 สำหรับ sqlite3.c: 33987fb50dcc09f1429a653d6b47672f5a96f19e

    มีอะไรใหม่ ในเวอร์ชัน 3.8.8:

    • คุณลักษณะใหม่:
    • เพิ่มคำสั่ง PRAGMA data_version ที่สามารถใช้เพื่อกำหนดว่าไฟล์ฐานข้อมูลได้รับการแก้ไขโดยกระบวนการอื่นหรือไม่
    • เพิ่มตัวเลือก SQLITE_CHECKPOINT_TRUNCATE ในอินเทอร์เฟซ sqlite3_wal_checkpoint_v2 () พร้อมด้วยการปรับปรุง PRAGMA wal_checkpoint ที่สอดคล้องกัน
    • เพิ่มอินเทอร์เฟซ sqlite3_stmt_scanstatus () เฉพาะเมื่อคอมไพล์ด้วย SQLITE_ENABLE_STMT_SCANSTATUS
    • sqlite3_table_column_metadata () ได้รับการปรับปรุงให้ทำงานอย่างถูกต้องในตาราง WITHOUT ROWID และเพื่อตรวจสอบว่ามีอยู่ของตารางหรือไม่ถ้าพารามิเตอร์ column name เป็น NULL ขณะนี้อินเทอร์เฟซยังรวมอยู่ใน Build โดยค่าเริ่มต้นโดยไม่ต้องใช้ตัวเลือกการคอมไพล์ข้อมูล SQLITE_ENABLE_COLUMN_METADATA
    • เพิ่มตัวเลือกการรวบรวมเวลา SQLITE_ENABLE_API_ARMOR
    • เพิ่มตัวเลือกรวบรวมข้อมูล SQLITE_REVERSE_UNORDERED_SELECTS ฉบับ
    • เพิ่มตัวเลือกการคอมไพล์ข้อมูล SQLITE_SORTER_PMASZ และตัวเลือกเริ่มต้นของ SQLITE_CONFIG_PMASZ
    • เพิ่มตัวเลือก SQLITE_CONFIG_PCACHE_HDRSZ เพื่อ sqlite3_config () ซึ่งช่วยให้แอปพลิเคชันสามารถกำหนดจำนวนหน่วยความจำที่เหมาะสมสำหรับใช้กับ SQLITE_CONFIG_PAGECACHE ได้
    • จำนวนแถวในประโยค VALUES ไม่ถูก จำกัด ด้วย SQLITE_LIMIT_COMPOUND_SELECT อีกต่อไป
    • เพิ่มส่วนขยายที่สามารถโหลดได้ของ Eval.c ซึ่งใช้ฟังก์ชัน Eval () SQL ซึ่งจะประเมิน SQL แบบรีลารี
    • การเพิ่มประสิทธิภาพ:
    • ลดจำนวนการดำเนินการ memcpy () ที่เกี่ยวข้องกับการปรับสมดุลของแผนภูมิ b เพื่อเพิ่มประสิทธิภาพโดยรวม 3.2%
    • การปรับปรุงค่าประมาณค่าใช้จ่ายสำหรับการเพิ่มประสิทธิภาพข้ามพร็อพเพอร์ตี้
    • การเพิ่มประสิทธิภาพการสร้างดัชนีอัตโนมัติสามารถสร้างดัชนีบางส่วนได้หากเหมาะสม
    • การแก้ไขข้อบกพร่อง:
    • ตรวจสอบความทนทานภายหลังการสูญเสียพลังงานด้วย "PRAGMA journal_mode = TRUNCATE" โดยการเรียก fsync () หลังจากตัดทอนแฟ้มเจอร์นัลแล้ว
    • นักวางแผนวางแผนการค้นหาตอนนี้ยอมรับว่าคอลัมน์ใด ๆ ในตารางด้านขวาของ LEFT JOIN สามารถเป็น NULL ได้แม้ว่าคอลัมน์นั้นจะมีข้อ จำกัด NOT NULL ก็ตาม หลีกเลี่ยงการพยายามเพิ่มประสิทธิภาพการทดสอบ NULL ในกรณีเหล่านี้ แก้ไขปัญหาสำหรับตั๋ว 6f2222d550f5b0ee7ed
    • ตรวจสอบให้แน่ใจว่า ORDER BY ทำให้แถวเรียงลำดับขึ้นไปแม้ว่าจะมีการใช้ตัวดำเนินการ DISTINCT โดยใช้ดัชนีลดขนาด แก้ไขปัญหาเกี่ยวกับตั๋ว c5eaA805691bfc4204b1cb9e
    • แก้ไขการแข่งขันข้อมูลที่อาจเกิดขึ้นภายใต้ความเครียดเมื่อใช้งานหลายเธรดในโหมดแคชที่ใช้ร่วมกันซึ่งมีบางส่วนของเธรดเปิดและปิดการเชื่อมต่อ
    • แก้ไขข้อผิดพลาดเกี่ยวกับข้อผิดพลาดที่ซ่อนอยู่โดยพบว่าเล็บฟัซซี่อเมริกัน ตั๋ว a59ae93ee990a55.
    • หลีกเลี่ยงข้อผิดพลาดของเครื่องมือเพิ่มประสิทธิภาพ GCC (สำหรับ gcc 4.2.1 บน MacOS 10.7) ที่ทำให้ส่วนขยาย R-Tree คำนวณผลลัพธ์ที่ไม่ถูกต้องเมื่อคอมไพล์ด้วย -O3
    • การเปลี่ยนแปลงอื่น ๆ :
    • ปิดการใช้งานไลบรารี c library strchrnul () เว้นแต่จะได้รับการเปิดใช้โดยเฉพาะโดยใช้ตัวเลือกการรวบรวมเวลา -DHAVE_STRCHRNULL
    • ปรับปรุงประสิทธิภาพและความถูกต้องของฟังก์ชันความน่าจะเป็น (), น่าจะ () และไม่น่าเป็นไปได้ () SQL hint
    • SQLITE_SOURCE_ID: "2015-01-16 12:08:06 7d68a42face3ab14ed88407d4331872f5b243fdf"
    • SHA1 สำหรับ sqlite3.c: 91aea4cc722371d58aae3d22e94d2a4165276905

    มีอะไรใหม่ ในเวอร์ชัน 3.8.7.4:

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

    มีอะไรใหม่ ในเวอร์ชัน 3.8.7.3:

    • การแก้ไขข้อผิดพลาด: ตรวจสอบให้แน่ใจว่าวัตถุ KeyInfo ที่แคชไว้ (ไม่สามารถมองเห็นแอพพลิเคชันภายในได้) จะไม่ล่มเมื่อใช้งานในโหมดแคชที่ใช้ร่วมกันและมักปิดและเปิดการเชื่อมต่อฐานข้อมูลใหม่ขณะออกจากฐานข้อมูลอื่น ๆ อย่างต่อเนื่อง. ตั๋ว e4a18565a36884b00edf.
    • การแก้ไขข้อผิดพลาด: ยอมรับว่าคอลัมน์ใด ๆ ในตารางด้านขวาของ LEFT JOIN สามารถเป็น NULL แม้ว่าคอลัมน์นี้จะมีข้อ จำกัด NOT NULL อย่าใช้การเพิ่มประสิทธิภาพที่ถือว่าคอลัมน์นี้ไม่มีค่า NULL ตั๋ว 6f2222d550f5b0ee7ed.
    • SQLITE_SOURCE_ID: "2014-12-05 22:29:24 647e77e853e81a5effeb4c33477910400a67ba86"
    • SHA1 สำหรับ sqlite3.c: 3ad2f5ba3a4a3e3e51a1dac9fda9224b359f0261

    มีอะไรใหม่ ในเวอร์ชัน 3.8.7.2:

    • เหตุผลหลักสำหรับรุ่นนี้คือการเพิ่มคำสั่งย้อนกลับเพื่อให้สามารถเรียกใช้ข้อความค้นหาบนการเชื่อมต่อฐานข้อมูลเดียวกันเพื่อให้ทำงานได้ต่อไปตราบเท่าที่การย้อนกลับไม่เปลี่ยนสคีมา ในเวอร์ชันก่อนหน้าทั้งหมดของ SQLite การย้อนกลับจะทำให้การสืบค้นข้อมูลที่รอดำเนินการเพื่อหยุดการทำงานทันทีและส่งคืน SQLITE_ABORT หรือ SQLITE_ABORT_ROLLBACK ข้อความค้นหาที่รอดำเนินการจะยกเลิกแม้ว่าการย้อนกลับจะเปลี่ยนสคีมาฐานข้อมูล แต่เมื่อปล่อยแพทช์นี้ข้อความค้นหาจะได้รับอนุญาตให้ทำงานต่อไปได้หากสคีมายังไม่ได้รับการแก้ไข
    • นอกเหนือจากการเพิ่มประสิทธิภาพให้กับ ROLLBACK แล้วรุ่นแพทช์นี้ยังมีการแก้ไขข้อบกพร่องสามอย่างที่ไม่ชัดเจน

    มีอะไรใหม่ ในเวอร์ชัน 3.8.7.1:

    • สาเหตุหลักสำหรับการแก้ไขปัญหาเกี่ยวกับการแก้ไขปัญหานี้คือการแก้ไขปัญหาเกี่ยวกับการอัพเดตค่าของฟิลด์ที่ท้ายตารางที่เพิ่มโดยใช้ ALTER TABLE ADD COLUMN ปัญหานี้ปรากฏครั้งแรกในรุ่น 3.8.7
    • ความรำคาญเล็กน้อยในการปล่อย 3.8.7 ก็คือการสร้าง Android พยายามใช้ฟังก์ชัน strchrnul () จากไลบรารี C มาตรฐาน แต่ฟังก์ชันดังกล่าวไม่สามารถใช้ได้กับ Android Android builds ต้องเพิ่ม -DHAVE_STRCHRNUL = 0 เพื่อแก้ปัญหา การแก้ไขปัญหานี้เพื่อให้ Android สร้างขึ้นควรทำงานโดยไม่มีการเปลี่ยนแปลงใด ๆ
    • การดำเนินงานของ PRAGMA journal_mode = TRUNCATE ได้รับการปรับปรุงเพื่อที่จะเรียกใช้ fsync () หลังจากตัดทอนไฟล์เจอร์นัลเมื่อ PRAGMA synchronous = FULL ซึ่งจะช่วยรักษาความต่อเนื่องในการทำรายการในกรณีที่เกิดการสูญเสียพลังงานที่เกิดขึ้นในไม่ช้าหลังจากกระทำ
    • ในที่สุดปัญหาเกี่ยวกับการเรียกใช้ UPDATE และ DELETE บน VIEWs ได้รับการแก้ไขปัญหาสองสามข้อที่ยาวนานและไม่ชัดเจน

    มีอะไรใหม่ ในเวอร์ชัน 3.8.7:

    • ส่วนใหญ่การเปลี่ยนแปลงจากรุ่นก่อนหน้ามีการเพิ่มประสิทธิภาพขั้นสูงที่ออกแบบมาเพื่อช่วยให้ SQLite ทำงานได้เร็วขึ้นเล็กน้อย การเพิ่มประสิทธิภาพแต่ละรายการมีผลกระทบต่อประสิทธิภาพการทำงานที่เล็กลงอย่างไม่น่าเชื่อ แต่การปรับปรุงเพิ่มขึ้น (ซึ่งนักพัฒนา SQLite ใช้เป็นพร็อกซีสำหรับภาระงานแอ็บพลิเคชันโดยทั่วไป) โดยใช้ cachegrind บน Linux และรวบรวมด้วย gcc 4.8.1 และ -Os on x64 linux ซึ่งเป็นเวอร์ชันปัจจุบันที่ทำงานมากกว่า 20% จำนวนรอบของ CPU เดียวกันกับรุ่นก่อนหน้า Cachegrind ไม่ใช่ CPU จริงและภาระงานที่ใช้วัดเป็นเพียงพร็อกซีเท่านั้น ประสิทธิภาพของคุณอาจแตกต่างกันไป เราคาดว่าจะเห็นประมาณครึ่งหนึ่งของการปรับปรุงที่วัดและรายงานในแอ็พพลิเคชันในโลกแห่งความจริง 10% น้อยกว่า 20% แต่ก็ยังดีอยู่ดีเราคิดว่า
    • รุ่นนี้มีชุดอินเตอร์เฟสภาษา C ซึ่งมี 64-bit ที่ไม่ได้ลงชื่อแทนที่จะเป็นพารามิเตอร์ความยาว 32 บิตที่ลงนาม API ใหม่ไม่ได้ให้ความสามารถใหม่ ๆ แต่จะทำให้การเขียนแอพพลิเคชันที่มีความสามารถในการต่อต้านการบุกรุกล้นได้ง่ายขึ้น
    • รุ่นนี้มีตัวจัดเรียงใหม่ซึ่งสามารถใช้เธรดหลายชุดเพื่อช่วยในการจัดเรียงข้อมูลขนาดใหญ่ได้ (การเรียงลำดับบางครั้งต้องใช้คำสั่ง ORDER BY และ / หรือ GROUP BY และจำเป็นสำหรับการสร้างดัชนีเสมอ) ตัวเรียงหลายหัวข้อถูกปิดใช้งานโดยค่าเริ่มต้นและต้องเปิดใช้งานโดยใช้คำสั่ง SQL ของ PRAGMA threads โปรดทราบว่าตัวเรียงลำดับแบบมัลติเธรดให้ประสิทธิภาพการทำงานแบบเรียลไทม์ได้เร็วขึ้นสำหรับประเภทขนาดใหญ่ แต่ยังใช้วงจร CPU และพลังงานมากขึ้น

    มีอะไรใหม่ ในเวอร์ชัน 3.8.3.1:

    • SQLite เวอร์ชัน 3.8.3.1 แก้ไขข้อผิดพลาดในเวอร์ชัน 3.8.1, 3.8.2 และ 3.8.3 ซึ่งอาจทำให้ข้อความค้นหาข้ามแถวที่ถูกต้องได้ ขอแนะนำให้อัปเกรดจากเวอร์ชันเหล่านี้
    • ปัญหาเกิดขึ้นเฉพาะถ้า SQLite ถูกคอมไพล์ด้วย SQLite_ENABLE_STAT3 หรือ SQLITE_ENABLE_STAT4 compile-time options ในกรณีนี้หากข้อความค้นหามีคำสั่ง WHERE ที่มีนิพจน์ดังนี้:
    • WHERE (expr1 หรือ expr2 OR ... หรือ exprN) และคอลัมน์ไม่ใช่ NULL
    • ในกรณีที่ expr1 ทั้งหมดผ่าน exprN เหมาะสำหรับการใช้งานโดยดัชนีแล้วในระหว่างการวางแผนการค้นหา SQLite อาจแปลงคำว่า "คอลัมน์ IS NOT NULL" เป็น "column & gt; NULL" ผิดพลาด แต่คำหลังไม่เป็นความจริงและแบบสอบถามจะไม่แสดงแถวใด ๆ

    มีอะไรใหม่ ในเวอร์ชัน 3.8.3:

    • เพิ่มการสนับสนุนสำนวนตารางที่ใช้ร่วมกันและประโยค WITH
    • เพิ่มฟังก์ชัน printf () ของ SQL
    • เพิ่ม SQLITE_DETERMINISTIC เป็นบิตตัวเลือกในอาร์กิวเมนต์ที่ 4 ไปยัง sqlite3_create_function () และอินเทอร์เฟซที่เกี่ยวข้องซึ่งทำให้แอพพลิเคชันมีความสามารถในการสร้างฟังก์ชันใหม่ ๆ ที่สามารถแยกแยะได้จากลูปภายในเมื่อมีอาร์กิวเมนต์ที่คงที่
    • เพิ่มรหัสข้อผิดพลาด SQLITE_READONLY_DBMOVED ซึ่งส่งกลับมาที่จุดเริ่มต้นของธุรกรรมเพื่อระบุว่าไฟล์ฐานข้อมูลต้นทางได้รับการเปลี่ยนชื่อหรือย้ายออกจาก SQLite
    • อนุญาตการแสดงออกโดยพลการรวมถึงการเรียกฟังก์ชันและ subqueries ในอาร์กิวเมนต์ชื่อไฟล์เพื่อ ATTACH
    • อนุญาตให้ใช้วลี VALUES ได้ทุกคำสั่ง SELECT ถูกต้อง
    • ปรับ PRNG ใหม่โดยใช้ sqlite3_randomness (N, P) เมื่อเรียกด้วย N == 0 รีลีสอัตโนมัติหลังจากส้อม () บน unix
    • ปรับปรุงตารางเสมือน spellfix1 เพื่อให้สามารถค้นหาได้อย่างมีประสิทธิภาพโดย rowid
    • การปรับปรุงประสิทธิภาพ
    • การปรับปรุงความคิดเห็นในการแสดงผลไบต์รหัส VDBE เมื่อใช้ EXPLAIN
    • เพิ่มคำสั่ง "% token_class" ไปยังเครื่องกำเนิด Parser LEMON และใช้เพื่อลดความซับซ้อนของไวยากรณ์
    • เปลี่ยนซอร์สโค้ด LEMON เพื่อหลีกเลี่ยงการเรียกฟังก์ชันไลบรารี C ที่ OpenBSD พิจารณาว่าเป็นอันตราย (เช่น: sprintf)
    • การแก้ไขข้อผิดพลาด: ในคุณลักษณะนำเข้า CSV ของเชลล์บรรทัดคำสั่งไม่ต้องปิดฟิลด์เมื่อมีการอ้างสิทธิ์สองครั้งที่มีการยกเว้นเกิดขึ้นเมื่อสิ้นสุดบรรทัด CRLN
    • SQLITE_SOURCE_ID: "2014-02-03 13:52:03 e816dd924619db5f766de6df74ea2194f3e3b538"
    • SHA1 สำหรับ sqlite3.c: 98a07da78f71b0275e8d9c510486877adc31dbee

ซอฟต์แวร์ที่คล้ายกัน

MySQL Sandbox
MySQL Sandbox

20 Feb 15

Oracle Database
Oracle Database

17 Feb 15

Mroonga
Mroonga

17 Feb 15

SmallSQL
SmallSQL

12 May 15

ความคิดเห็นที่ SQLite

ความคิดเห็นที่ไม่พบ
เพิ่มความคิดเห็น
เปิดภาพ!
ค้นหาตามหมวดหมู่