Access和MySQL都是我们平时所说的数据库,但二者的区别却是很大的。
最明显的区别就是:Access是桌面型数据库,以文件的格式存储,通过驱动可直接访问文件;而MySQL则是大型关系型数据库,需要MySQL数据库服务后台支撑,存储的格式也不仅仅是一个文件那么简单,访问的则是数据库服务器而不是文件。
当然上面说的主要是最明显的区别,如果要对二者进行对比,那区别大着呢,我们下面就罗列下二者的主要区别。
获取途径不同正规来说,Access算是Office的一个套件,如果您要用Microsoft Access来管理Access,则需要购买Office,从这个角度看,Access是收费的;当然您也可以通过其它途径管理Access,这种情况下Access又是免费的。与Access对标的开源数据库是SQLite,如果要选择,还是建议您选择SQLite。
MySQL则是开源的数据库系统,您要是用直接从官网下载即可,这个本身是免费的,但一些好用的前端管理工具有可能是收费的,比如Navicat就价格不菲。自从MySQL被Oracle收购之后,MySQL被分出两个分支,一个分支闭源开始收费、一个分支则仍旧开源,从长远看,Oracle肯定会把开源部分收费、或者继续开源但故意疏于维护导致性能与闭源分支拉开距离。
与MySQL对标的开源数据库是MariaDB,这是从MySQL分离出来的一个独立的开源分支,而且承诺永远开源永远免费。所以,从长远看,选用MySQL不如直接使用MariaDB或者另一个功能强大的开源数据库PostgreSQL。不过MariaDB和MySQL基本是兼容的,所以即时有一天流氓公司要完全闭源了,直接转到MariaDB也不是难事儿。
性能区别非常大Access和MySQL本质上讲,都算是关系型数据库,都是通过行列二维表格的方式存储数据,但二者的性能却是天差地别。
Access毕竟是文件型的桌面数据库,在数据量不大时,速度还是可以接受的,但当访问数据量过大时,速度和效率急剧下降。而且,如果您要分布式访问Access也会比较麻烦,可能您需要采用第三方工具支撑,或者自己开发一个服务端排队访问。当然,如果是做网站用就没有这种问题,只是速度和效率问题了。
MySQL则不同,作为最受欢迎的开源关系型数据库,MySQL的性能是获得一致认可的,当数据量比较大时,仍可保证较快的速度和较高的效率,同时,MySQL对并发访问的处理也比Access的好得多,分布式访问更不是问题。
支持的操作系统不同Access是微软Office的一个套件,只能支持Windows平台,这对喜欢使用Linux的朋友来说基本是无解的。
MySQL则根植于Linux,后来才移植到Windows,MySQL对Linux的支持是全方位的,在Linux上运行的效率也要优于Windows。当然MySQL支持的不仅仅是Linux和Windows了,各种Unix和MacOS也都是支持的。
支持的SQL区别很大Access算是一个变种的小型数据库,支持的SQL语法有限,而且很多标准SQL被微软在Access上阉割的不伦不类的。Access主要支持的是表和视图,对我们常用的自定义函数、存储过程等等都是完全不支持的,这对喜欢写自定义函数和存储过程的朋友来说,简直就是梦魇。同时Access支持的数据类型也是有限的。
MySQL则不同,她基本兼容SQL-92标准,很多方面还做了优化,对自定义函数、存储过程的支持也是很棒的,语法格式基本比较正常。MySQL支持的数据类型非常丰富,甚至是区别于其它关系型数据库,这点有点不正常,但搞明白了倒会成为MySQL的一个优点。
当然区别还有很多,二者的应用场景完全不同,基本没有太多可比性。如果您为了简单选用Access,倒不如使用SQLite;如果您为了性能选用MySQL,倒不如使用MariaDB和PostgreSQL。