于项目需要,在客户端需要做数据存储功能,考虑到部署方便同时满足功能需要的情况下选择了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. VScode插件以及配置

    Auto Rename Tag —— 自动同步修改标签 AutoFileName —— 自动补全路径提示 background —— 一个萌萌的插件,可以自己设置vsc的背景图 Bootstrap 3 ...

  2. C# 使用CsvHelper读取.csv文件

    1,先到包管理器下载 安装CsvHelper. 2,创建一个与csv文件字段名称相同的类 public class SurveyInfoModel { public string DIST_CD { ...

  3. 4月18日 MySQL学习

    正式开始了数据库的学习 昨天下好的MySQL 今天正式开始学习的,介绍了多种数据库软件,当然 学习的这个是开源的 免费的. DBMS(数据库管理系统)这就是我们学习的数据库的软件 数据库分为关系型数据 ...

  4. C语言函数-strcat

    strcat: 将两个char类型连接. char d[20]="GoldenGlobal"; char *s="View"; strcat(d,s); 结果放 ...

  5. leanote使用本地账户+坚果云同步

    1. 换机器后笔记无法显示 这是因为新建账户与原账户userid不一致. 正确的同步方式为: 下载leanote并解压,不运行,不新建账户 从坚果云同步leanote数据 创建leanote的数据目录 ...

  6. P1462 通往奥格瑞玛的道路

    P1462 通往奥格瑞玛的道路 题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡 ...

  7. BZOJ 1855 股票交易 (算竞进阶习题)

    单调队列优化dp dp真的是难..不看题解完全不知道状态转移方程QAQ 推出方程后发现是关于j,k独立的多项式,所以可以单调队列优化.. #include <bits/stdc++.h> ...

  8. python学习day16 模块(汇总)

    模块(总) 对于range py2,与py3的区别: py2:range() 在内存中立即把所有的值都创建,xrange() 不会再内存中立即创建,而是在循环时边环边创建. py3:range() 不 ...

  9. logstash 自动重新加载配置

    自动重新加载配置 为了可以自动检测配置文件的变动和自动重新加载配置文件,需要在启动的时候使用以下命令: ./bin/lagstash -f configfile.conf --config.reloa ...

  10. (转)Java并发包基石-AQS详解

    背景:之前在研究多线程的时候,模模糊糊知道AQS这个东西,但是对于其内部是如何实现,以及具体应用不是很理解,还自认为多线程已经学习的很到位了,贻笑大方. Java并发包基石-AQS详解Java并发包( ...