你能推荐一个轻量级的SQL数据库,它不需要在客户端计算机上安装就可以工作,并且可以很容易地从.NET应用程序访问吗?只需要基本的SQL功能.

现在我在简单的项目和分发中使用Access数据库.MDB和.EXE文件放在一起.寻找任何替代品.

推荐答案

这取决于你所说的轻量级是什么意思.对公羊手下留情?还是更轻的db文件?或者更轻的连接器来连接到数据库?还是整体文件更少?我会把我所知道的做一个比较:

                    no of files    cumulative size of files    db size

Firebird 2.5             5                6.82 MB               250 KB

SqlServerCe 4            7                2.08 MB               64 KB

Sqlite 3.7.11.0          1                0.83 MB               15 KB

VistaDb 4.3.3.34         1                1.04 MB               48 KB

no of files - includes the .net connector and excludes the db file

dbs由1个表组成,包含2列2行.将db大小与少量盐一起使用,因为dbs在进一步使用时可能会有不同的生长.例如,SqlServerCe虽然最初是64KB,但在添加几百条记录后,它根本没有增长,而VistaDb则很容易从48 KB增长到72 KB,再增长到140 KB.SQLite在这方面是最好的,它从最低开始线性增长.

几则轶事:我使用出厂设置的SqlServerCe性能更好,这意味着它在没有任何配置的情况下是最容易上手的,而我发现Firebird由于缺乏在线material 而更难上手.据我所知,Firebird具有最广泛的标准SQL兼容性.虽然VistaDb是用完全托管的C#编写的,这意味着它可以与应用程序的程序集合并为一个单独的文件,但在我看来它似乎是最慢的.考虑到性能、易用性和大小,我 Select 了SQLite.SqlServerCe将是我的第二 Select .

简而言之,每一种都有其优缺点.再说一次,对我的咆哮持保留态度,这只是我个人的经历.

Database相关问答推荐

为多个列 Select 最新的非空值

数据库是序列图中的控制器还是边界?

无法向 SiriDB 添加新副本

什么是 CREATE VIEW IF NOT EXISTS in postgresql

复合主键

Cassandra 还是 MySQL/PostgreSQL?

基于邮政编码的纬度和经度

Zend 框架 - 为什么我应该使用数据映射器/Db_Table_Row?

从 XML 读取数据

将数据库表用作作业(job)队列的最佳方式是什么?

主键、唯一键和外键约束以及索引之间有什么区别?

表别名如何影响性能?

如何使用 MySQL Workbench 更改字段的值?

获取错误函数 to_date(timestamp without time zone, unknown) 不存在

如何在远程服务器上备份 MySQL 数据库?

我可以用 JPA 命名我的约束吗?

数以百万计的条目排名

如何在 MySQL 中清理或调整 ibtmp1 文件的大小?

根据上次日期 Select 记录

在具有所需 ForeignKey 引用的 Django (1.8) 应用程序之间移动模型