有用记事本做数据库的人吗? 用C#开发了房地产物业管理的程序,各种记录与数据都是用txt文件保存。写了各种查询语句与写入语句。执行效率也没比数据库慢啊。大家感觉用txt文件做数据存取有什么利弊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据量大了你就知道了区别了数据量不大时 我喜欢用XML 数据库小,就用access 大了就用sql或者orc 看什么场合数据小 用XML。才不会用记事本。。记事本也不安全 数据量不大还是用xml吧。 记事本不安全。 基于文本文件的开源数据库——sqlite,有各种语言的版本。不过数据是明文记录的,不支持加密。 下载http://www.sqlite.org/download.html 小数据放到txt文本里面稍微大点放到access 再大点放到sql再再大点就放oracle 你这个才需要写数据库,除非你的资料仅作为LOG保存一下.缓存+多线程+批量写入 干嘛用记事本啊你不想装数据库软件 就用xml好了 xml 其实是一种毒, 各位中毒很深 SQLite 这个数据库楼主去研究下 很久前学IO的时候写过一个小程序,就是用txt做的数据库。不过只是玩玩。 弄好点的吧,数据少选access 多的话 SQL 文本txt的读写肯定比数据库快的。数据库要考虑很多处理。 都是建立在文件之上 txt 也可以 在C#里面 一行 放一条数据 读取的时候 File 有个 ReadAllLines 的方法 ··不知道拼的对不对··· 有 但是用XML 逼即使本好多了Access也不错 用XML来做效果是最好的~~我有的项目基本上都有用XML来做~~~TXT一般我只是用来存一些文本文件~~ 可能楼主理解上面有误~~TXT其实不是数据库~~XML是数据库但也可以看到文本文件~~~把扩展改一下表面上跟记事本差不多~~~ 楼主说的是txt文件保存,他并没有说用记事本来保存啊!只是按照lz的意思好像是用文本文件来存储而非二进制方式。另外,access和sqllite等是基于文件的数据库,性能肯定比你“设计”的基于文件的性能要好。另外,传统的二维数据库,如中型的mySQL,大于的oracle、db2等,主要解决的是大量重复、高并发、事务支持、安全性等等。基于文件的数据库和基于服务的数据库、或者是NOSQL类型的适用面不一样。貌似你的要求应该用,但是如果数据量相当大而且是二维的话,可以用sqllite。 不过sqllite记录太多时性能下降的很快,如超过十万条记录时,这个没有测过。 数据少软件用.txt也没什么关系。大的还是用专业数据库的好。 真的是“数据库”吗?那是怎么解决查询问题的?用string类自己的方法?还是什么呢,本人很疑惑。10万条记录,一条一行,你的解决方案是如何解决关键字查询的?按理说应当要有索引吧,用散列算法做主键索引是必须的。你用一文本文件做数据文件,就需要自己写索引程序啊,这不发明轮子么,就算写轮子吧,上GB的文件,C#下一定是用文件视图绝对定位做了,要不一次性装内存还不疯了。关于插入和删除的方法中重建索引的方法也够忙半天的。关于文本型字段上做查询优化,就又得把字符串的二进制值做二叉树索引。锁啊、并发控制、触发器、约束啊、权限控制啊。sql解释器啊什么也得有点吧。内存管理也得加点吧。最后问一下,您做的其实是在一个txt型资源文件上的string型数据操作类对吧。 这个。挺有才的不过txt确实不安全从acid四个角度来看都不应该作为数据库来存在 noSql时代开始啦!还在讨论sql?了解一下吧,比如MongoDB ....数据量不大 那叫做数据交换 xml数据量大了 oracle sql 谁说用文本就慢,用数据库就快了?!这本来就没有可比性。1. 具我所知,导航器上的地图数据文件多数都是1G多的文本,也没见运行很慢。关键是你怎么组织你的文本数据的格式。导航器的SD卡有限的空间里用SQL是不现实的。2. 至于安全性,我想没有哪个数据库比文本数据更容易实现安全加密吧。3. 文本数据库的弊端,主要是它的格式没有像SQL或XML一样有一定的标准,它的使用方与设计方必需达成一定的协议标准才能有效的使用数据。这点是关键。4. 单单从运行速度上讲,我觉得,组织的文本数据要比数据库还要快。理由是 文本:文本数据-->内存数据库:SQL逻辑-->数据区-->内存。5. 文本数据是不会被淘汰的,最简单的例子是杀毒软件的历史记录就是以文本记录的,当然也有用sqlite的.哈哈,扯了一堆,其实数据库也是文件(本),只不过它组织了标准的数据格式。 - 如果只增数据,不减数据,写入操作方面笔记本肯定比任何一款数据库或XML介质速度要快,而且是数倍的快,- 但如果考虑数据删除,就麻烦了,因为他只能覆盖重写。牛一点的方式是,不删除,只增加,单独设一个索引记录哪些数据是无效的。然后统一在系统空闲时清除- 如果高效的查询,没有索引笔记本无法与数据库相比,甚至在结构做的不好情况,可能都没法查出来,你要是牛就自己再建个索引系统。 如果处理的好,笔记本肯定比XML 和数据库都快,不过我感觉好像在重新做一个底层数据库 淘不淘汰是相对而言的。在小数据量时,xml很好 半力支持你的看法!TXT做数据库,当然在这些性能上会不行,但是优点也是很明显的!使用SQL,需要在客户端弄一大堆东西去支持,对于嵌入式的机器简直就是要命。这种情况下,还是TXT来得简单。当然,数据量稍大,就成问题了。我在实践中采用了折衷的选择:access,呵呵! C#水晶报表 基础问题:层的位置问题 treeview 如何填充数据表的问题 求救:System.__ComObject 类型转换问题 一个treeview的问题 通过WebService往MySql写入一个超长字符串时异常 c#经典问题 帮帮做一个播放器 在ADO.NET中如何处理 "视图 "和数据实体的关系 邮件发送的问题 求数组的最大值 C#WinForm控件如何用代码控制控件的位置:前置后置。 如VB一样的Zorder函数。
数据量大了你就知道了区别了数据量不大时 我喜欢用XML
不过数据是明文记录的,不支持加密。
http://www.sqlite.org/download.html
稍微大点放到access
再大点放到sql
再再大点就放oracle
缓存+多线程+批量写入
不过只是玩玩。
··不知道拼的对不对···
Access也不错
他并没有说用记事本来保存啊!只是按照lz的意思好像是用文本文件来存储而非二进制方式。另外,access和sqllite等是基于文件的数据库,性能肯定比你“设计”的基于文件的性能要好。另外,传统的二维数据库,如中型的mySQL,大于的oracle、db2等,主要解决的是大量重复、高并发、事务支持、安全性等等。基于文件的数据库和基于服务的数据库、或者是NOSQL类型的适用面不一样。貌似你的要求应该用,但是如果数据量相当大而且是二维的话,可以用sqllite。 不过sqllite记录太多时性能下降的很快,如超过十万条记录时,这个没有测过。
大的还是用专业数据库的好。
那是怎么解决查询问题的?用string类自己的方法?还是什么呢,本人很疑惑。10万条记录,一条一行,你的解决方案是如何解决关键字查询的?
按理说应当要有索引吧,用散列算法做主键索引是必须的。
你用一文本文件做数据文件,就需要自己写索引程序啊,这不发明轮子么,就算写轮子吧,上GB的文件,C#下一定是用文件视图绝对定位做了,要不一次性装内存还不疯了。
关于插入和删除的方法中重建索引的方法也够忙半天的。
关于文本型字段上做查询优化,就又得把字符串的二进制值做二叉树索引。
锁啊、并发控制、触发器、约束啊、权限控制啊。sql解释器啊什么也得有点吧。内存管理也得加点吧。最后问一下,您做的其实是在一个txt型资源文件上的string型数据操作类对吧。
不过txt确实不安全
从acid四个角度来看
都不应该作为数据库来存在
理由是 文本:文本数据-->内存
数据库:SQL逻辑-->数据区-->内存。5. 文本数据是不会被淘汰的,最简单的例子是杀毒软件的历史记录就是以文本记录的,当然也有用sqlite的.哈哈,扯了一堆,其实数据库也是文件(本),只不过它组织了标准的数据格式。
- 但如果考虑数据删除,就麻烦了,因为他只能覆盖重写。牛一点的方式是,不删除,只增加,单独设一个索引记录哪些数据是无效的。然后统一在系统空闲时清除
- 如果高效的查询,没有索引笔记本无法与数据库相比,甚至在结构做的不好情况,可能都没法查出来,你要是牛就自己再建个索引系统。
如果处理的好,笔记本肯定比XML 和数据库都快,不过我感觉好像在重新做一个底层数据库