于项目需要,在客户端需要做数据存储功能,考虑到部署方便同时满足功能需要的情况下选择了SQLCE 和SQLite两种数据库进行客户端数据存储。当然还有很多其他的方式做本地数据存储,比如本地文件存储、微软的Access等也可以做本地数据存储,都不再本次测试的考虑范围之内。本次主要针对SQLCE3.5、SQLCE4.0 和SQLite数据库的性能对比。

SQL CE: 全名(SQL Server Compact)该数据库为微软的产品,免费试用;数据库存储在扩展名为.sdf,最大容量为4GB。

SQLite:开源数据库,免费试用;数据库扩展名.db 或者.db3,理论上SQLite支持140TB的容量。当然如果数据量这么大的情况下可以考虑其他的数据库。

测试方法:通过一个连接的同时操作多条数据的方式测试数据库插入、查询的处理速度;SQLCE包含两个版本SQLCE3.5和SQLCE4.0,分别进行了测试。下图为数据库测试的记录报告。

说明:该测试记录在一张有4个字段的数据表上进行测试。

操作系统:windows10

处理器:Intel(R) Core(TM) I706820HQ cpu @2.70GHz

内存:8G

硬盘:SSD

总结:

性能对比:

数据插入:不增加事务SQLCE的性能要比SQLite好很多,但是如果增加事务操作上SQLite综合效率要比SQLCE块大概5-10倍左右。

查询:SQLCE要优于SQLite 2倍左右。

修改和删除几乎差不太多。

部署方便程度对比:

在开发.NET平台的程序时,SQLite只需要一个DLL文件即可完成对数据库的操作。但是SQLCE需要额外安装SQLCE的安装包才可以支持SQLCE数据库。从这个方面说SQLCE的部署要比SQLite复杂一些。

数据库容量对比:

SQLCE只能支持4GB的数据存储量,SQLite理论上支持140TB的数据存储。所以在存储量上SQLite优势很大。

备注:以上测试只是结合业务场景需要可能存在不科学之处,仅供参考和学习使用。

测试代码:https://github.com/zhaochengshen/SQLCE-SQLiteTest.git

SQL CE 和 SQLite数据库对比测试的更多相关文章

  1. Electron中使用sql.js操作SQLite数据库

    推荐sql.js——一款纯js的sqlite工具. 一.关于sql.js sql.js(https://github.com/kripken/sql.js)通过使用Emscripten编译SQLite ...

  2. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  3. 通过Sql语句控制SQLite数据库增删改查

    person类属性有Intenger id,String name,Intenger  age,相应的构造方法和set get方法. package com.xh.tx.dao; import jav ...

  4. 通过SQL语句操作Sqlite数据库

    一.数据库的创建 数据库版本为1 //Ctrl+Shift+U:大写 public static final String DATABASE_NAME ="zzw.db"; pub ...

  5. 用SQL语句操作Sqlite数据库的示例代码

    import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.databa ...

  6. SQL Server转sqlite数据库

    下载地址:http://files.cnblogs.com/jason-davis/SQL_Server_To_SQLite_DB_Converter_bin.zip 下载地址:http://file ...

  7. 功能齐全、效率一流的免费开源数据库导入导出工具(c#开发,支持SQL server、SQLite、ACCESS三种数据库),每月借此处理数据5G以上

    软件名:DataPie 功能:支持SQL server.SQLite.ACCESS数据库的导入.导出.存储过程调用,支持EXCEL2007.EXCEL2003.ACCESS2007. CSV文件导入数 ...

  8. SQL Server 链接服务器连接 SQLite数据库文件

    SQL Server数据库允许通过数据库驱动程序连接各类数据库并进行操作.以下是在SQL Server 2012 R2中建立SQLite的链接服务器. 一.下载SQLite数据库的ODBC驱动程序: ...

  9. C# web项目中sql数据库转sqlite数据库

    最近做了一个小网站,用到了一个使用sql server 2005的.net cms系统,但是现在我所买虚拟主机的服务商,不给虚拟主机提供sql server服务了,那就转数据库吧,转啥好呢,思来想去, ...

随机推荐

  1. 小程序组件中有bindinput监听报异常

    真机上有问题,ide上是没问题的,   组件有处理函数,结果异常说页面没有处理函数,加上处理函数后就不报异常了.

  2. Module build failed: Error: Cannot find module 'babel-runtime/core-js/get-it

    npm i babel-loader@7.1.5 -D

  3. 微信小程序爬坑

    1.app.json配置信息是怎样的? { "pages":[ "pages/页面1/页面1", "pages/页面2/页面2", ], & ...

  4. ES6 对象增强

    对象字面量语法扩展: 1, 属性初始化语法简写:给一个属性赋一个变量值,如果变量名和属性名相同,可以省略变量名和冒号,直接写属性名,js引擎在执行代码的时候,自动查找 和属性命名相同的变量并赋值. l ...

  5. odoo10 addon开发流程

    odoo addon开发流程 创建一个addon(插件) 命令如下 python odoo-bin scaffold 插件名 路径 # 例如 python odoo-bin scaffold hh_t ...

  6. Elasticsearch 目录总结

    一:Elasticsearch (及工具插件)安装相关: 二:Elasticsearch 数据新增相关: 三:Elasticsearch 数据删除相关: 四:Elasticsearch 数据更新相关: ...

  7. 洛谷P3469[POI2008]BLO-Blockade

    题目 割点模板题. 可以将图中的所有点分成两部分,一部分是去掉之后不影响图的连通性的点,一部分是去掉之后影响连通性的点,称其为割点. 然后分两种情况讨论,如果该点不是割点,则最终结果直接加上2*(n- ...

  8. 「FHQ Treap」学习笔记

    话说天下大事,就像fhq treap —— 分久必合,合久必分 简单讲一讲.非旋treap主要依靠分裂和合并来实现操作.(递归,不维护fa不维护cnt) 合并的前提是两棵树的权值满足一边的最大的比另一 ...

  9. codeforces850E Random Elections

    题目链接:codeforces 850E 翻译:luogu 读题是第一要务(大选这么随便真的好吗) 其实答案问你的就是在所有选民心中支持的人的所有情况中,能让一个人连赢两场的情况数是多少 我们假设\( ...

  10. react native使用百度echarts显示图表

    echarts是百度推出的免费开源的图表组件,功能丰富,涵盖各行业图表.公司项目做h5项目用了不少,最近公司翻新h5页面,用react-native改造,来达到增强用户体验效果的目的.项目中遇到了一些 ...