SQLite 3.8.8 发布,数据库服务器

oschina
 oschina
发布于 2015年01月17日
收藏 33

SQLite 3.8.8 发布,此版本是 SQLite 常规的维护版本,没有引人注目的新特性或者性能改进,只是不断的在改进。主要的性能提升是通过重构 B-Tree 重整逻辑来避免不必要的 memcpy() 操作。新特性包括 PRAGMA data_version 状态,可以访问一个 VALUES clause,不限制任意行数。此外解决了一些 Mac 上的编译错误和多线程问题。

更多内容请看更新日志

SQLite是遵守ACID的关联式数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。

不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。

特征

库实现了多数的SQL-92标准,包括事务,就是代表原子性一致性隔离性持久性的(ACID),触发器和多数的复杂查询。不进行类型检查。你可以把字符串插入到整数列中。例如,某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。

多个进程线程可以访问同一个数据而没有问题。可以并行的满足多个读访问。只有在其他访问当前不被服务的时候才能满足写访问;否则写访问失败并带有一个错误代码(也可以在可配置的超时过期之后自动的重试)。

提供了叫做sqlite的一个独立程序用来查询和管理SQLite数据库文件。 它也充当写使用SQLite库的应用的一个例子。

语言绑定

可以从C/C++程序中使用这个库,还可以获得对Tcl和一些其他脚本语言的绑定。

在CPAN的DBD::SQLite上有一个Perl的DBI/DBD模块,它不是到SQLite的接口,而是包括整个SQLite数据库引擎在其中并不需要任何额外的软件。

还有一个Python模块叫做PySQLite

PHP从PHP5.0开始包含了SQLite,但是自5.1版之后开始成为一个延伸函式库。SQLite能与PHP4一起工作但不包含在其中。

Rails2.0.3将缺省的数据库配置改为了SQLite 3

SQLite管理客户端

SQLite亦可以作为桌面数据库使用,以下为第三方SQLite的GUI软件。例如,

  • SQLiteMan,使用QT开发的一个SQLite客户端,支持多语言、跨平台。SQLiteMan

  • SQLite Manager, 以 火狐浏览器的扩展形式提供的SQLite客户端。

  • SQLite Database Browser, a graphical client to access SQLite databases

  • SqlPro SQL Client, another graphical client to work with SQLite databases

在线文档:http://www.ostools.net/apidocs/apidoc?api=sqlite

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:SQLite 3.8.8 发布,数据库服务器
加载中

最新评论(11

HostSugar
HostSugar

引用来自“eechen”的评论

SQLite很棒,读性能还是相当好的,开启事务后写速度也非常快,数据库实例就是一个文件,非常好理解。
大多数用户可能还需要一个图形化的管理工具,个人推荐采用Tcl/Tk开发的,跨平台的,开源的,支持中文的SQLiteStudio:
SQLiteStudio3(Qt/C++重写): http://sqlitestudio.pl/files/sqlitestudio3/complete/
http://static.oschina.net/uploads/space/2014/1228/172349_zJsx_561214.png
SQLiteStudio2(Tcl/Tk界面): http://sqlitestudio.pl/files/free/stable/
http://static.oschina.net/uploads/space/2013/0802/200954_u8YQ_561214.png
SQLiteStudio 2.1.5 内置的 SQLite 引擎为版本 3.7.16.1。
SQLiteStudio 3.0.1 内置的 SQLite 引擎为版本 3.8.7.4。
SQLiteStudio 2 配置:
~/.sqlitestudio/settings
SQLiteStudio 3 配置:
~/.config/sqlitestudio/settings3
配置本事就是一个SQLite3数据库.

<?php
$dbh = new PDO('sqlite:test');
$dbh->query('CREATE TABLE `users` (`id` INTEGER PRIMARY KEY, `name` VARCHAR(128), `email` VARCHAR (128))');
$dbh->beginTransaction();
for($i=0;$i<1600;$i++) {
  $dbh->query('INSERT INTO `users` (`name`, `email`) VALUES ("Albert Einstein", "einstein@example.com")');
}
$dbh->commit();
//使用事务后,插入1600条数据,耗时不足200毫秒.
和 H2 相比较呢?
muyu
muyu
推荐个数据库管理工具:http://www.oschina.net/p/dbeaver
DennisXiong
DennisXiong
远程访问的问题现在怎么样了?
Pader
Pader

引用来自“ZeroOne”的评论

个人认为sqlite应该被成为数据库引擎更合适, 不能称作是数据库服务器...
另外请加入一个非常优秀的sqlite UI工具, sqlite studio.这个在免费的工具中算是最好的一个.
正确的叫法是嵌入式数据库,而非数据库服务器。
nirvanalei
nirvanalei
python里早就是内置的sqlite3了,pysqlite是多久之前的吧
eechen
eechen
PHP是内置SQLite引擎,随PHP启动加载到内存.
要升级,就是重新构建PHP了,比如PHPNG(PHP7)现在用的是SQLite 3.8.7.2
https://github.com/php/php-src/tree/PHP-5.5/ext/sqlite3/libsqlite
Tuesday
Tuesday

引用来自“eechen”的评论

PHP为SQLite提供有3套函数:
SQLite PDO(推荐,事务,绑定参数等都支持):
http://php.net/manual/zh/ref.pdo-sqlite.php
SQLite3(不支持事务):
http://php.net/manual/zh/sqlite3.construct.php
SQLite(老版本,不建议使用):
http://php.net/manual/zh/function.sqlite-open.php
没搞懂, php好像直接new PDO('sqlite:test');就可以创建一个SQLite库出来, 那它这发布跟我们使用的有什么区别?

我们怎么升级到3.8.8?
eechen
eechen
PHP为SQLite提供有3套函数:
SQLite PDO(推荐,事务,绑定参数等都支持):
http://php.net/manual/zh/ref.pdo-sqlite.php
SQLite3(不支持事务):
http://php.net/manual/zh/sqlite3.construct.php
SQLite(老版本,不建议使用):
http://php.net/manual/zh/function.sqlite-open.php
eechen
eechen
值得注意的是,基于Qt5的SQLiteStudio3不能激活Fcitx的解决方法:
sudo apt-get install fcitx-frontend-qt5
ln -s /usr/lib/`arch`-linux-gnu/qt5/plugins/platforminputcontexts/ /path/to/SQLiteStudio3/
另外在SQL Editor里自动完成快捷键占用了Ctrl+Space,你把它改成Atl+/就能正常使用Ctrl+Space激活输入法了。
另外基于Qt5的QtCreator输入法问题也是这样解决的:
http://my.oschina.net/eechen/blog/166969
eechen
eechen
SQLite很棒,读性能还是相当好的,开启事务后写速度也非常快,数据库实例就是一个文件,非常好理解。
大多数用户可能还需要一个图形化的管理工具,个人推荐采用Tcl/Tk开发的,跨平台的,开源的,支持中文的SQLiteStudio:
SQLiteStudio3(Qt/C++重写): http://sqlitestudio.pl/files/sqlitestudio3/complete/
http://static.oschina.net/uploads/space/2014/1228/172349_zJsx_561214.png
SQLiteStudio2(Tcl/Tk界面): http://sqlitestudio.pl/files/free/stable/
http://static.oschina.net/uploads/space/2013/0802/200954_u8YQ_561214.png
SQLiteStudio 2.1.5 内置的 SQLite 引擎为版本 3.7.16.1。
SQLiteStudio 3.0.1 内置的 SQLite 引擎为版本 3.8.7.4。
SQLiteStudio 2 配置:
~/.sqlitestudio/settings
SQLiteStudio 3 配置:
~/.config/sqlitestudio/settings3
配置本事就是一个SQLite3数据库.

<?php
$dbh = new PDO('sqlite:test');
$dbh->query('CREATE TABLE `users` (`id` INTEGER PRIMARY KEY, `name` VARCHAR(128), `email` VARCHAR (128))');
$dbh->beginTransaction();
for($i=0;$i<1600;$i++) {
  $dbh->query('INSERT INTO `users` (`name`, `email`) VALUES ("Albert Einstein", "einstein@example.com")');
}
$dbh->commit();
//使用事务后,插入1600条数据,耗时不足200毫秒.
返回顶部
顶部