Small. Fast. Reliable.
Choose any three.

SQLite版本3.12.0于2016-03-29

    潜在破坏性变化:

  1. SQLITE_DEFAULT_PAGE_SIZE增加从1024到4096 SQLITE_DEFAULT_CACHE_SIZE从2000变为-2000所以高速缓存存储器相同数量的默认情况下使用。有关更多信息,请参见关于3.12.0版页面大小更改的应用笔记 。

    性能增强:

  2. Lemon解析器生成器进行了增强 ,使其创建了更小,更快的SQL解析器。
  3. 仅当两个或多个附加数据库都被修改,PRAGMA同步设置为OFF且journal_mode设置为OFF,MEMORY或WAL时,才创建主日记文件。
  4. 仅在其大小超过阈值时创建语句日记文件。否则,日记将保留在内存中,并且不会发生I / O。可在编译时使用SQLITE_STMTJRNL_SPILL或在启动时使用sqlite3_configSQLITE_CONFIG_STMTJRNL_SPILL)配置阈值。
  5. 即使xBestIndex方法未将虚拟表列的sqlite3_index_constraint_usage.omit标志设置在IN运算符的左侧,查询计划程序仍可以优化虚拟表上的IN运算符。
  6. 现在,查询计划器可以更好地优化 3向或更高连接中的虚拟表访问,其中虚拟表上的约束分布在两个或多个其他连接表中。
  7. 更有效地处理应用程序定义的SQL函数,尤其是在应用程序定义数百或数千个自定义函数的情况下。
  8. 查询计划者在估计ORDER BY的成本时会考虑LIMIT子句。
  9. 配置脚本(在Unix上)自动检测pread()和pwrite()并设置编译时选项以使用这些OS接口(如果可用)。
  10. 减少保存架构所需的内存量。
  11. 其他各种微优化,可提高性能并减少内存使用。

    新的功能:

  12. sqlite3_db_config()中添加了SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER选项,该选项 允许在运行时启用或禁用fts3_tokenizer() SQL函数的两个参数版本。
  13. RBU扩展中添加了sqlite3rbu_bp_progress()接口。
  14. PRAGMA defer_foreign_keys = ON语句现在还禁止 操作限制外键。
  15. 添加了sqlite3_system_errno()接口。
  16. 添加了SQLITE_DEFAULT_SYNCHRONOUSSQLITE_DEFAULT_WAL_SYNCHRONOUS 编译时选项。该SQLITE_DEFAULT_SYNCHRONOUS编译时选项替换了SQLITE_EXTRA_DURABLE选项,它不再支持。
  17. 增强了命令行外壳中的“ .stats”命令,以显示有关从/ proc获得的I / O性能的更多信息(如果有)。

    Bug修复:

  18. 确保单个语句中来自多个触发器的sqlite3_set_auxdata()值不会相互干扰。票证dc9b1c91
  19. 修复代码生成器,以使用“ x IN(SELECT ...)”形式的表达式,其中RHS上的SELECT语句是相关子查询。机票5e3c886796e5512e
  20. 修复与sqlite3_db_readonly()接口关联的无害TSAN警告。

    散列:

  21. SQLITE_SOURCE_ID:“ 2016-03-29 10:14:15 e9bb4cf40f4971974a74468ef922bdee481c988b”
  22. sqlite3.c的SHA1:cba2be96d27cb51978cd4a200397a4ad178986eb

一个SQLite的版本的完整列表, 在一个单一的页面和年代都还可以。 SQLite版本控制站点上提供了每个签入的详细历史记录 。