windows下sqlite安装使用和性能优化及设置.docx_第1页
windows下sqlite安装使用和性能优化及设置.docx_第2页
windows下sqlite安装使用和性能优化及设置.docx_第3页
全文预览已结束

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

windows下sqlite安装使用和性能优化及设置sqlite是嵌入式SQL数据库引擎SQLite(SQLite Embeddable SQL Database Engine)的一个扩展。SQLite是一个实现嵌入式SQL数据库引擎小型C语言库(C library),实现了独立的,可嵌入的,零配置的SQL数据库引擎。特性包括:事务操作是原子,一致,孤立,并且持久的,即使在系统崩溃和电源故障之后。 零配置不需要安装和管理。实现了绝大多数SQL92标准。整个数据库存储在一个单一的文件中。数据库文件可以在不同字节序的机器之间自由地共享。支持最大可达2T的数据库。字符串和BLOB类型的大小只受限于可用内存。完整配置的少于250KB,忽略一些可选特性的少于150KB。在大多数常见操作上比流行的客户/服务器数据库引擎更快。 简单易于使用的API。 内建TCL绑定。 另外提供可用于许多其他语言的绑定。具有良好注释的源代码,代码95%有较好的注释。独立:没有外部依赖。源代码位于公共域,可用于任何用途。用SQLite连接的程序可以使用SQL数据库,但不需要运行一个单独的关系型数据库管理系统进程(separate RDBMS process)。SQLite不是一个用于连接到大型数据库服务器(big database server)的客户端库(client library),而是非常适合桌面程序和小型网站的数据库服务器。SQLite直接读写(reads and writes directly)在硬盘上的数据库文件。下面是我自己的使用过程:SQLite安装方案SQLite的最新版本可以从这里下载。下面我们以Windows版本sqlite-3_5_1.zip 为例介绍其安装方法。(大家可以选择下载安装适合自己的版本)下载后,将sqlite-3_5_1.zip解压缩至C:sqlite目录即完成安装。C:sqlite目录构造为:C:sqlite|+-sqlite3.exe打开一个CMD命令窗口C:cd sqliteC:sqlitesqlite3.exe mydb.dbSQLite version 3.5.1Enter .help for instructionssqlite create table user ( id integer primary key, name varchar(32) );sqlite .schemaCREATE TABLE user ( id integer primary key, name varchar(32) );sqlite.quit退出后,查看C:sqlite目录,会发现多出一个mydb.db文件:C:sqlite|+-sqlite3.exe+-mydb.dbSQLite性能优化很多人直接就使用了,并未注意到SQLite也有配置参数,可以对性能进行调整。有时候,产生的结果会有很大影响。主要通过pragma指令来实现。比如: 空间释放、磁盘同步、Cache大小等。不要打开。前文提高了,Vacuum的效率非常低!PRAGMA auto_vacuum;PRAGMA auto_vacuum = 0 | 1;查询或设置数据库的auto-vacuum标记。正常情况下,当提交一个从数据库中删除数据的事务时,数据库文件不改变大小。未使用的文件页被标记并在以后的添加操作中 再次使用。这种情况下使用VACUUM命令释放删除得到的空间。当开启auto-vacuum,当提交一个从数据库中删除数据的事务时,数据库文件自动收缩, (VACUUM命令在auto-vacuum开启的数据库中不起作用)。数据库会在内部存储一些信息以便支持这一功能,这使得 数据库文件比不开启该选项时稍微大一些。只有在数据库中未建任何表时才能改变auto-vacuum标记。试图在已有表的情况下修改不会导致报错。建议改为8000PRAGMA cache_size;PRAGMA cache_size = Number-of-pages;查询或修改SQLite一次存储在内存中的数据库文件页数。每页使用约1.5K内存,缺省的缓存大小是2000. 若需要使用改变大量多行的UPDATE或DELETE命令,并且不介意SQLite使用更多的内存的话,可以增大缓存以提高性能。当使用cache_size pragma改变缓存大小时,改变仅对当前对话有效,当数据库关闭重新打开时缓存大小恢复到缺省大小。 要想永久改变缓存大小,使用default_cache_size pragma.打开。不然搜索中文字串会出错。PRAGMA case_sensitive_like;PRAGMA case_sensitive_like = 0 | 1;LIKE运算符的缺省行为是忽略latin1字符的大小写。因此在缺省情况下a LIKE A的值为真。可以通过打开 case_sensitive_like pragma来改变这一缺省行为。当启用case_sensitive_like,a LIKE A为假而 a LIKE a依然为真。打开。便于调试PRAGMA count_changes;PRAGMA count_changes = 0 | 1;查询或更改count-changes标记。正常情况下INSERT, UPDATE和DELETE语句不返回数据。 当开启count-changes,以上语句返回一行含一个整数值的数据该语句插入,修改或删除的行数。 返回的行数不包括由触发器产生的插入,修改或删除等改变的行数。PRAGMA page_size;PRAGMA page_size = bytes;查询或设置page-size值。只有在未创建数据库时才能设置page-size。页面大小必须是2的整数倍且大于等于512小于等于8192。 上限可以通过在编译时修改宏定义SQLITE_MAX_PAGE_SIZE的值来改变。上限的上限是32768.如果有定期备份的机制,而且少量数据丢失可接受,用OFFPRAGMA synchronous;PRAGMA synchronous = FULL; (2)PRAGMA synchronous = NORMAL; (1)PRAGMA synchronous = OFF; (0)查询或更改synchronous标记的设定。第一种形式(查询)返回整数值。 当synchronous设置为FULL (2), SQLite数据库引擎在紧急时刻会暂停以确定数据已经写入磁盘。 这使系统崩溃或电源出问题时能确保数据库在重起后不会损坏。FULL synchronous很安全但很慢。 当synchronous设置为NORMAL, SQLite数据库引擎在大部分紧急时刻会暂停,但不像FULL模式下那么频繁。 NORMAL模式下有很小的几率(但不是不存在)发生电源故障导致数据库损坏的情况。但实际上,在这种情况 下很可能你的硬盘已经不能使用,或者发生了其他的不可恢复的硬件错误。 设置为synchronous OFF (0)时,SQLite在传递数据给系统以后直接继续而不暂停。若运行SQLite的应用程序崩溃, 数据不会损伤,但在系统崩溃或写入数据时意外断电的情况下数据库可能会损坏。另一方面,在synchronous OFF时 一些操作可能会快50倍甚至更多。在SQLite 2中,缺省值为NORMAL.而在3中修改为FULL.使用2,内存模式。PRAGMA temp_store;PRAGMA temp_store = DEFAULT; (0)PRAGMA temp_store = FILE; (1)PRAGMA temp_store = MEMORY; (2)查询或更改temp_store参数的设置。当temp_store设置为DEFAULT (0),

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论