SQLite

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

Rating: 5.0/5 (Total Votes: 1)

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

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

Ojota
Ojota

20 Feb 15

HyperSQL
HyperSQL

11 May 15

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

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