首页 下载中心 支持与服务 云服务 HC服务 问答专区 练习专区 最新动态 常见问题 合作 关于我们
2012
04/05
15:48

忘掉数据库

2012-04-05 15:48:55 来源:软件服务社

2010年的时候,我们就曾谈起过设计财务软件采用哪种数据库的问题,F12.2发布后,看到一些朋友对采用MySql有点担心,担心数据量大了之后性能是否有问题,所以再说一下我们的想法。

数据库是基础,而财务软件又极为重要,所以我们提前进行了非常慎重的考虑,对包括MySqlPostgreSql等开源数据库和SQL ServerOracleSybase等商业数据库都进行了全面的分析,比如对PostgreSql我们还进行了几个月的实际开发测试。最终选择了MySql,主要原因是:

1、开源、免费:这一点十分重要。我们的产品是完全免费的,但如果需要使用一个费用高昂的商业数据库,那么用户就只有二个选择:要么花大笔的银子,要么用盗版,这都不是我们希望看到的,我们希望用户能自由、免费、光明正大的使用。

2、跨平台:这一点可以保证用户不依赖于某种操作系统,您可以用windows,也可以用linux。如果做不到这一点,那么用户也只能有二个选择:要么高价购买windows server,要么用盗版。这同样是不行的。

3、性能:这是第一位重要的因素。但MySql的性能实际上远优于多数人的想象,而且由于它是开源的,因此,必要时我们可以进行针对性的优化。

有人担心MySql数据量大了之后性能是否有问题,这种担心往往来自于一些软件商的宣传,因为很多软件商为了宣传其产品如果强大,张嘴就胡喷什么OracleDB2SQL Server之类的,仿佛运行在OracleDB2SQL Server之上才显示它们的产品如何强大、复杂,也好象只有OracleDB2SQL Server之类的数据库才能支持他们如此“强大”的产品。

但实际上,数据库的性能很大程度取决于能否使用好。

举一个身边的例子:淘宝的数据量是非常大的,他们最初使用MySql,后来性能hold不住了,几年前改成了Oracle,当时好了一段时间,但后来发现到一定程度后,Oracle也出现难以解决的瓶颈,于是最终放弃了Oracle、又改回MySql。当然,他们对MySql进行了一些优化,结果取得了非常好的效果。现在他们使用的就是MySql,即使是在光棍节促销那种大并发量、大数据量的情况下,依然表现得非常给力。

又比如:我们以前使用的用友NC,那是用友号称最高端的产品,使用的是商业数据库,但在数据库中只有2000多员工信息的情况下,查询一个员工信息居然要用几十秒,这是数据库的问题吗?显然是使用的问题。使用不好,用什么大型数据库都白搭。

再说一个去年我们遇到的事情:我们有一个北京的用户,是一家母婴用品专业销售企业。使用我们的产品换掉了他们原来的OA等系统后,感觉很好,就问起我们进销存,说他们现在的系统花了上百万,但系统性能差到什么程度呢:白天没人敢做统计分析,因为极慢,只要有几个人做分析系统就死了,所以只好让IT部天天晚上在别人下班后才敢做一些分析,而且晚上也极慢,经常只能等一个通宵。后来他们的IT经理带着营运总监等几个人来看我们现在的系统,我们大约介绍了一下我们现有的数据量:在库品种数11万种,当前在用品种数3万多种,年销售记录数X亿条,年销售额N亿元,当前数据库中保存了三年多的数据。他们估了一下,这个数据量是他们的十倍以上。我们按他们的要求做了各种数据分析,结果很多他们要做5分钟、10分钟甚至更长时间的分析我们几乎都在5秒内解决,最多的也不过15秒,而且数据分析深度、广度比他们的需求更高。我们所用的是一台性能不到他们服务器性能50%的一台老机器,并且当时还有近200个同时在线的其他员工在处理各种工作。他们的总监当时大怒,让IT经理用手机把过程录下来,要回去找那个软件商算账(好笑的是,这位IT经理由于天天晚上加班、被折腾得实在受不了,就问那个软件商为什么用着那么好的服务器、数据量也不大,性能却比我们差这么多,结果对方回复:人家牛呗!)。其实这种事情没什么奇怪,因为很多问题我们经历过,我们知道问题在哪里。根本问题不在于使用什么数据库,而是在于怎样使用,在于优秀的算法。

在财务软件开发过程中,我们也遇到过性能不好的情况,比如开始有的功能要用20多秒,但这不是MySql的问题,我们调整了算法后,0.5秒内就解决了。现在,我们已经全面评估了所有环节,我们知道有哪些地方可能成为瓶颈,但可以确认,没有任何问题会成为我们的障碍。

如果有一天,有人告诉我们说自己公司的规模太大了、数据量太大了、程序慢得难以忍受了,我们倒真的很希望遇上这样的挑战,那时我们会非常高兴地立刻给您解决,而且是免费的。但我们相信不会遇到能阻碍我们的问题,我们相信自己的数学能力解决这些事情不是有八成或九成的把握,而是有百分之百的把握。

我们采用MySql还有一个原因是出于整体性考虑,目前OAHRPBTCCRM等各个系统都是基于MySql的,所以,财务系统等产品采用同样的数据库,可以保持非常好的整体性,我们希望能给用户提供整体的、全面的、可持续的解决方案。正是因为有这样的设计考虑,所以您现在看到的是完整而统一的F-air,而不是象用友All-in-One那种假整合的骗人玩艺。
很多人担心MySql在Oracle手中会不会越来越差甚至走向闭源,其实这根本不需要考虑,MySql现在就已经有很多非常优秀的分支,如XtraDB、MariaDB、Percona,现有的代码都可以很容易迁移过来。产生MySql并不需要Oracle,有Oracle也阻挡不了开源数据库的发展,所以您根本不必考虑地球上是否存在一个叫Oracle的东西。

您完全不需要担心什么数据库的问题,实际上,用户根本不用费心考虑这些事情、只管使用就可以了,具体的技术问题应当是开发者负责的。不只是软件,任何产品都应当这样。如果做不到这一点,那就是开发者的失职。我们甚至一直努力在使用手册中尽可能不提TomcatMySql、数据库等名词。用户要处理的工作很多,不应当再让用户考虑或担心这些问题。这样可以让用户有更多时间去优化管理流程和核心业务,或者去爬山、睡觉、看电影……

【上一篇】: 财务软件是不是必须经过政府审批? 【下一篇】: FM:为什么免费,为什么重要,为什么优秀
【上一篇】: 财务软件是不是必须经过政府审批?
【下一篇】: FM:为什么免费,为什么重要,为什么优秀