各位高手,请教下数据库的选择,是选Access数据库还是mysql数据库?

木奇 2014-02-21 01:25:54
各位高手,请教下下面这个程序是选Access数据库还是mysql数据库,哪个比较好些?谢谢
正在做一个测试程序,会每分钟记录几次数据,一个测试大概会三四天,一次测试数据量大概在10W~60W之间,
测试期间能查看测试数据,测试完成后要保存记录数据及各种参数设置,方便以后查看。程序需支持多个测试同时进行而不相互影响。
请教以上情况应该选Access数据库还是mysql数据库?为什么?
我的初步选择是Access数据库,因为不需要另外安装数据库程序,mysql要另外安装,而且完成后导出的是文件形式,查看数据非常方便,mysql是否也能像Access一样备份查看都很方便呢?Access有一个问题是当查看备份记录,记录数据很大时,会很慢,卡住,mysql是否会有相同的问题?
各位高手还有什么建议?谢谢!
...全文
952 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
宝龙哥 2014-02-26
  • 打赏
  • 举报
回复
引用 13 楼 flying0302 的回复:
[quote=引用 12 楼 ccrun 的回复:] 你用 SQLServer Express 版本就行了,免费的。
菜鸟,请教下用SQLServer Express,用户端是不是需额外安装SQLServer Express,怎么才能把我的程序和数据库安装弄成一个安装程序,还有安装数据库时的一些设置(如本地数据库密码)安装时默认,有什么简单的方法吗?谢谢![/quote] 这个网上有大量的免安装绿色版,你百度一下,有种版本可以随便更换目录,用的时候启动一下,可以命令行关闭,可以放在程序的安装目录里使用
宝龙哥 2014-02-26
  • 打赏
  • 举报
回复
SQLserver的日志是可以去掉的,sqlserver自己备份的是有日志文件的,完全去掉现实,但控制其体积是有办法的,比较方便的方法是收缩数据库,比较彻底的方法是删除日志后设置日志的最大尺寸: 1、备份好数据库 2、彻底关闭SQLSERVER的服务 3、把mdf文件复制出来 4、启动sqlserver,删除这个的数据库 5、之后按照如下步骤:   A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。   B.停掉数据库服务器。   C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。   D.启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。   E.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。 /* */ use master go sp_configure 'allow updates',1 go reconfigure with override go   F.设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test')   此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表   G.下面执行真正的恢复操作,重建数据库日志文件 dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')   执行过程中,如果遇到下列提示信息: 服务器: 消息 5030,级别 16,状态 1,行 1 未能排它地锁定数据库以执行该操作。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。   说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。   正确执行完成的提示应该类似于: 警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。   此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。   H.验证数据库一致性(可省略) dbcc checkdb('test')   一般执行结果如下: CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。   I.设置数据库为正常状态 sp_dboption 'test','dbo use only','false'   如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。   J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成: sp_configure 'allow updates',0 go reconfigure with override go 这样设置后的日志是1M,是一个最纯的日志文件了,但体积会随着使用而增加,但可以通过日志文件的相关设置限制其大小
宝龙哥 2014-02-26
  • 打赏
  • 举报
回复
引用 11 楼 flying0302 的回复:
[quote=引用 6 楼 kfrght 的回复:] 你所提的要求中的多进程操作数据库,这个Access表面上是能实现,但不可靠,很容易被锁定,锁定了的话要关闭所有的操作数据库的程序后重新打开才能解锁 这个是硬伤 因此,你用MySQL或SQLServer较好,尤其是SQLServer,可以用2000版的,Windows平台上的最佳选择,本身很小巧,备份恢复之类的根本就不是问题,也有免安装的和免费msde或最小版的可以使用
原先不想把Access换成mysql,主要是因为mysql导出需要的记录到文件中后,如果需要查看历史记录,需要新建一个数据库加载记录文件中各个表的内容,查看完毕后还要再删除这个数据库,挺麻烦的,但数据量小时Access很正常,当记录大时,程序查看记录就容易卡住,所以再请教下SQL Server 2005和免安装的、免费msde或最小版、有什么不同啊,性能有什么差别? 如果选用SQL Server我想导出记录时直接把需要的多个表的记录导出到新的数据库中,分离数据库就变成文件形式了,查看时通过附加数据库来加载会方便些,但还有问题请教,SQL Server数据库包含两个文件:*.mdf和*.ldf,有办法把日志文件去掉吗,日志文件有时会很大,而且如果*.mdf被移到别的文件夹,而对应的*.ldf没对应移到,附加数据库就会出错,有没有什么好的办法?谢谢啦![/quote] 关于这个问题,SQLSERVER本身有三种,一种是官方收费版本,一种是官方免费版本,一种是三方处理版,免费部分个版本有不同,名称以不一样,比如sqlserver2000的免费版叫MSDE,2005之后就叫SQL Server Express 了,具体看: http://technet.microsoft.com/zh-cn/library/ms165672(v=sql.90).aspx 至于三方处理版一版都是以小巧的原版sqlserver2000版为基础去掉一些不必要的内容后弄成静默安装包之类的,方便使用,体积约10M左右不等
木奇 2014-02-25
  • 打赏
  • 举报
回复
引用 12 楼 ccrun 的回复:
你用 SQLServer Express 版本就行了,免费的。
菜鸟,请教下用SQLServer Express,用户端是不是需额外安装SQLServer Express,怎么才能把我的程序和数据库安装弄成一个安装程序,还有安装数据库时的一些设置(如本地数据库密码)安装时默认,有什么简单的方法吗?谢谢!
LinuxCard 2014-02-25
  • 打赏
  • 举报
回复
必须安装呀,要不你就用sqlite,性能比access好点,如果数据很多,可以分开建立数据库文件,一个测试一个数据库文件,这样大量数据对性能的影响会少点
ccrun.com 2014-02-24
  • 打赏
  • 举报
回复
引用 5 楼 flying0302 的回复:
再请教下: 备份记录文件是通过C++ Builder写的可执行程序.exe来加载和查看的,这样程序需要ADO控件建立数据库连接,再创建新的数据库再导入备份记录文件内容,操作完以后再删除数据库,好像挺麻烦的,有没有什么好的方法啊?或者使用mysql数据库有什么比较方便的文件备份方式,程序查看比较方便的,谢谢!
如果只是为了方便程序查看,便携式的Access和SQLite是首选。 至于备份之类的,MySQL和SQLServer都很方便。
ccrun.com 2014-02-24
  • 打赏
  • 举报
回复
你用 SQLServer Express 版本就行了,免费的。
木奇 2014-02-24
  • 打赏
  • 举报
回复
引用 6 楼 kfrght 的回复:
你所提的要求中的多进程操作数据库,这个Access表面上是能实现,但不可靠,很容易被锁定,锁定了的话要关闭所有的操作数据库的程序后重新打开才能解锁 这个是硬伤 因此,你用MySQL或SQLServer较好,尤其是SQLServer,可以用2000版的,Windows平台上的最佳选择,本身很小巧,备份恢复之类的根本就不是问题,也有免安装的和免费msde或最小版的可以使用
原先不想把Access换成mysql,主要是因为mysql导出需要的记录到文件中后,如果需要查看历史记录,需要新建一个数据库加载记录文件中各个表的内容,查看完毕后还要再删除这个数据库,挺麻烦的,但数据量小时Access很正常,当记录大时,程序查看记录就容易卡住,所以再请教下SQL Server 2005和免安装的、免费msde或最小版、有什么不同啊,性能有什么差别? 如果选用SQL Server我想导出记录时直接把需要的多个表的记录导出到新的数据库中,分离数据库就变成文件形式了,查看时通过附加数据库来加载会方便些,但还有问题请教,SQL Server数据库包含两个文件:*.mdf和*.ldf,有办法把日志文件去掉吗,日志文件有时会很大,而且如果*.mdf被移到别的文件夹,而对应的*.ldf没对应移到,附加数据库就会出错,有没有什么好的办法?谢谢啦!
kenny_hwei 2014-02-23
  • 打赏
  • 举报
回复
access够用了吧
宝龙哥 2014-02-23
  • 打赏
  • 举报
回复
SQLServer 或 msde是你不二的选择
宝龙哥 2014-02-23
  • 打赏
  • 举报
回复
sqlserver可以使用计划任务或存储过程等完成备份
宝龙哥 2014-02-23
  • 打赏
  • 举报
回复
你所提的要求中的多进程操作数据库,这个Access表面上是能实现,但不可靠,很容易被锁定,锁定了的话要关闭所有的操作数据库的程序后重新打开才能解锁 这个是硬伤 因此,你用MySQL或SQLServer较好,尤其是SQLServer,可以用2000版的,Windows平台上的最佳选择,本身很小巧,备份恢复之类的根本就不是问题,也有免安装的和免费msde或最小版的可以使用
ccrun.com 2014-02-22
  • 打赏
  • 举报
回复
Access在数据量较大的时候,性能会有欠缺,但SQLite也不会好到哪里去。建议用MySQL或SQLServer。
木奇 2014-02-22
  • 打赏
  • 举报
回复
引用 2 楼 u011679916 的回复:
用sqlite 我感觉数据量大的时候,这个比ACCESS好
sqlite没用过,导出导入数据库多个表方便吗?导出数据库可以是文件格式吗?谢谢
drlqyy 2014-02-22
  • 打赏
  • 举报
回复
用sqlite 我感觉数据量大的时候,这个比ACCESS好
木奇 2014-02-22
  • 打赏
  • 举报
回复
怎么没人理我,帮帮忙,给点建议,谢谢啦
木奇 2014-02-22
  • 打赏
  • 举报
回复
引用 4 楼 ccrun 的回复:
Access在数据量较大的时候,性能会有欠缺,但SQLite也不会好到哪里去。建议用MySQL或SQLServer。
再请教下: 备份记录文件是通过C++ Builder写的可执行程序.exe来加载和查看的,这样程序需要ADO控件建立数据库连接,再创建新的数据库再导入备份记录文件内容,操作完以后再删除数据库,好像挺麻烦的,有没有什么好的方法啊?或者使用mysql数据库有什么比较方便的文件备份方式,程序查看比较方便的,谢谢!

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧