很多使用SQL Server数据库的朋友,可能从MSSQL2000就开始用起,一路升级,目前版本是2019,但只提供预览版。正式版本的SQL Server是2017版,这也是笔者目前正用的版本。
SQL Server 2019还真是了不得,她在大数据群集、数据库引擎等方面有重大功能突破,还提供了新的工具Azure Data Studio,如果您有兴趣,不妨下载一个预览版试用一番。
下图是SQLServer版本的变迁历史,如果您一直用,可以看看您都用过哪些版本:
目前大家用的最多的数据库,肯定不是SQL Server,应该是MySQL。很多人对SQL Server比较反感,盖是因为MySQL是开源的、不存在版权之争,而SQL Server是商业数据库、需要购买;或因网上MySQL的资源非常丰富,使用的成本比较低;或因大家对微软这种垄断型的软件公司根本就喜欢不起来吧。
没办法,使用开源免费数据库确实就是爽,不担心版权问题、不用花钱、还有网上大量可用资源。不但是您喜欢、我也很喜欢。如果您使用开源免费的数据库,可能感觉呼吸的空气就是香甜的、而那些还在使用SQL Server的就像不开化的土老帽。
SQL Server和Oracle、DB2、Informix、Sybase等商业数据库诞生在同一个时代,有数十年的发展历史,就功能和性能来说,SQL Server并不算差。我们都有这样的共识,微软的东西优势就是傻瓜化,但性能却很一般,SQLServer也不例外。
笔者用过多种数据库,有SQL Server、MySQL、PostgreSQL、Access、SQLite等等。自从MySQL被Oracle收购之后,感觉MySQL已经被判了死缓,但MySQL已经占领了大量市场,按照Oracle对Java的流氓品性,感觉MySQL未来凶多吉少。
可喜的是,MariaDB出现了,她是从MySQL分出的分支,承诺继续走开源免费路线。说白了就是看不惯Oracle这种大流氓呗。国内也有一群有识之士,开发出了非常牛掰的NewSQL数据库TiDB,也是沿着超越和替换MySQL的路子去的。
对于大型应用来说,我们一般也不会选SQLite和Access,这两者更合适用在本地存储,就像你用水果刀去杀牛,感觉刀子拿着顺手,却干不出好成绩。
就个人喜好来说,大型应用还是选PostgreSQL或TiDB,如果您真的割舍不了MySQL,也可以尝试下MariaDB,两者就像孪生兄弟一般。PostgreSQL号称世界上功能强大的开源数据库,这名头也不是盖的;TiDB是国内贡献的开源数据库,对OLAP、OLTP的支持都棒极了。
随着NoSQL的飞速发展,有些朋友对MongoDB、Redis等充满了激情,MongoDB本来有大好前途,却被自己的私欲带歪了。总体来说,NoSQL数据库应用尚未大面积铺开,但NewSQL却出现了,NewSQL兼容并蓄,吸收了传统数据库和NoSQL的所有优点,将来肯定会分走不少传统数据库和NoSQL数据库的市场。
对使用数据库的朋友来说,喜欢是一回事,拿来干活赚钱养家又是另一回事。很多朋友不都是骂着自己正在用的工具、夸着自己想用但还无法常用的工具、但还是要用自己骂着的工具来赚钱谋生嘛。以笔者为例,我最喜欢的数据库是PostgreSQL,但用的却不多。
笔者的客户主要是工厂ERP应用,我也是权衡再三,就各种成本来说,使用SQL Server的成本还算是低一些,维护起来还是会方便很多。工厂一般很少有专业的数据库管理员,除了SQL Server,其它数据库普通的网管也很难玩得转。
有些比较“聪明”的朋友,他们只在数据库中使用表、视图这些基本元素,而不去碰存储过程、自定义函数这些。这些朋友想要更换数据库确实挺简单的,把表创建的脚本导出来,稍作修改就可以用在其它数据库上。
但也有一些像我这样的“愚蠢”的朋友,特喜欢用存储过程、自定义函数,我对存储过程的喜爱到了痴迷的程度,客户端基本不会传递查询、更新语句到数据库,所有的操作都封装在存储过程中。
结果可想而知:想要做数据库迁移真是难上加难。还好我在新开发系统时,所有的SQL脚本都是双份,一份针对SQLServer、一份针对PostgreSQL,两种数据库都支持,耗费的精力和时间会多一些,但总可以在喜好和应用上找到心理平衡点。
虽然很多朋友讨厌SQLServer,但我们不得不承认,SQLServer功能强大、性能优良。您可以讨厌她,但她也不会死,还可能活得很滋润。如果您讨厌她却又离不开她,不如就像我这样,尝试把所有脚本都做双份吧。