SQLite 3.33.0 發(fā)布了,SQLite 是一個(gè) C 實(shí)現(xiàn)的 SQL 數(shù)據(jù)庫(kù)引擎,它的特點(diǎn)是小型、快速、自包含、高可靠性和功能齊全。SQLite 嵌入在所有手機(jī)和大多數(shù)計(jì)算機(jī)中,也捆綁在為數(shù)眾多的其它應(yīng)用中,是世界上使用量最大的數(shù)據(jù)庫(kù)引擎。
此版本更新內(nèi)容包括:
1.支持遵循 PostgreSQL 語(yǔ)法的 UPDATE FROM:
UPDATE-FROM?的想法是對(duì) SQL 的擴(kuò)展,它允許 UPDATE 語(yǔ)句由數(shù)據(jù)庫(kù)中的其他表驅(qū)動(dòng)。使用 UPDATE-FROM,可以將目標(biāo)表與數(shù)據(jù)庫(kù)中的其他表連接起來(lái),以幫助計(jì)算需要更新的行以及這些行上的新值。
2.將數(shù)據(jù)庫(kù)文件的最大大小增加到 281 TB。
3.擴(kuò)展了?PRAGMA integrity_check?語(yǔ)句,以便可以選擇將其限制為僅驗(yàn)證單個(gè)表及其索引,而不是驗(yàn)證整個(gè)數(shù)據(jù)庫(kù)文件。
4.添加了用于執(zhí)行任意精度十進(jìn)制算術(shù)的十進(jìn)制擴(kuò)展名。
5.增強(qiáng)?ieee754 擴(kuò)展,以使用 IEEE 754 binary64 數(shù)字。
6.CLI?增強(qiáng)功能:
添加了四個(gè)新的輸出模式:“box”、“json”、“markdown” 和 “table”。
“column”輸出模式會(huì)自動(dòng)擴(kuò)展列以包含最長(zhǎng)的輸出行,如果之前未設(shè)置,則自動(dòng)打開 “.header”。
“quote”輸出模式支持 “.separator”。
CLI 內(nèi)置了十進(jìn)制擴(kuò)展名和 ieee754 擴(kuò)展名。
7.改進(jìn) Query planner:
添加了使用 INDEXED BY 查找查詢的全索引掃描(full-index-scan)查詢計(jì)劃的功能,該計(jì)劃以前會(huì)因 “無(wú)查詢解決方案”而失敗。
盡管存在錯(cuò)誤信息,但可以更好地檢測(cè)丟失,不完整和 / 或不可靠的 sqlite_stat1 數(shù)據(jù),并生成良好的查詢計(jì)劃。
提高了查詢性能,例如 “SELECT min(x) FROM t WHERE y IN (?,?,?)”(假設(shè)在 t(x,y)?上具有索引)。
8.在?WAL 模式下,如果寫入器崩潰并使 shm 文件處于不一致狀態(tài),則即使存在活動(dòng)的讀取事務(wù),后續(xù)事務(wù)現(xiàn)在也可以恢復(fù) shm 文件。在此版本之前,該情況下的 shm 文件恢復(fù)將導(dǎo)致 SQLITE_PROTOCOL 錯(cuò)誤。