它并不是用想象的SysV IPC mechanism (shmat) 实现,而是用Memory mapping mechanism(mmap)。虽然使用了部分shmat存储一些数据库控制变量信息等,但是数据还是用内存文件映射的。对于千万级的数据,其需内存是4GB以上,所以感觉用内存映射文件数据库更合适。
fastdb实现的方法重要的几点特征:
1、内存文件映射时更改了系统的自动提交更新页数据机制,为事务性性能提高基础。
2、数据库事务提交机制是基于一个影子根页算法(shadow root pagesalgorithm),对数据库进行原子更新操作,所以恢复非常快。
3、提供游标化,结构化语句的查询。
4、还提供了一个可视化的数据查询工具SUBSQL。
在安装完fastdb后,subsql在/usr/local/bin下,在终端中运行subsql命令就可以应用了。语法结构输入help命令就可以在终端中显示出来。
[root@xu-admin uninstall]# subsql
SubSQL interactive utility for FastDB v. 3.65
Type 'help' for more information
>> help
SubSQL commands:
open 'database-name' ( 'database-file-name' ) ';'
select ('*') from <table-name> where<condition> ';'
update <table-name> set<field-name> '='<expression> {','<field-name> '='<expression>} where<condition> ';'
create table <table-name>'('<field-name><field-type> {','<field-name><field-type>}')' ';'
alter table <table-name>'('<field-name><field-type> {','<field-name><field-type>}')' ';'
rename <table-name> '.'<old-field-name> 'to'<new-field-name> ';'
delete from <table-name>
drop table <table-name>
drop index <table-name> {'.'<field-name>} ';'
create index on <table-name> {'.'<field-name>} ';'
drop hash <table-name> {'.'<field-name>};
create hash on <table-name> {'.'<field-name>}field>';'
insert into <table-name> values '('<value>{','<value>} ')' ';'
backup [compactify] 'file-name'
start server URL number-of-threads
stop server URL
start http server URL
stop http server
describe <table-name>
import 'xml-file-name'
export 'xml-file-name'
show
profile
commit
rollback
autocommit (on|off)
exit
help
>>