看了一些文章,也没有特别清晰的理解面向对象存储。我发现中文网站上并没有人去对比的写MinIO和MySQL的不同,可能大家觉得这俩根本没必要对比吧。这篇文章会对比MinIO与MySQL,能更直观的理解面向对象存储。(以下内能很多都是按自己的理解,可能有错误,如有错误,请评论区指出,感谢)
这是我在一个网站上看到的一个图。咱们就一个词一个词解释。
Cloud Storage
- 首先我们先区别云存储和本地存储的区别。
本地存储就是在自己的电脑上存储,或自己搭建个服务器;云存储就是把东西放到阿里云服务器(或别的)上去。
本地存储的缺点就是麻烦,你得买服务器、自己运维等等。而阿里云可以让你完全不用考虑这些问题,甚至监控、动态扩容全给你设计好。 - 把MySQL部署到阿里云上,算是云存储吗?
不算,这叫云数据库。
云数据库可以包括关系型数据库以及非关系型数据库,而云存储则可以包含块存储以及对象存储等(下面会说)。
在继续的查找中,我继续查找,发现了很多“文件系统和数据库系统”的词条。查到这里我也发现我自己有一个很大的误区,我一见到存储,脑子里只有数据库。所以我不理解Cloud Storage和Database,以为Database放在阿里云上就是Cloud Storage。
其实数据库只是一种存储数据的形式,还有别的形式,比如文件存储、块存储、对象存储。而云存储并不采用数据库,下面先解释“文件系统和数据库系统”这个词条。 - 文件系统和数据库系统
首先说明文件系统和文件存储的区别:看下面“文件存储”那张图,文件存储应该包含文件系统。看了很多文章,没有人区分这个,有的人会说文件存储,有的会说文件系统,所以可以文件存储=文件系统。
1)文件系统用操作系统中的存取方法对数据进行管理,数据库系统用DBMS(数据库管理系统)统一管理和控制数据。
2)文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享。
3)数据库系统是在文件系统的基础上发展而来的。(我觉得可以说,数据库系统就是文件系统)
4)文件系统用文件将数据长期保存在外存上,数据库系统用数据库统一储存数据。
5)文件属于自定义结构的数据存取模式,数据库属于结构化管理的数据存取模式。(非结构化数据,例如视频、图片用文件系统。结构化,需要权限控制的数据进数据库,例如合同、单据。) - 文件存储、块存储、对象存储
1)块存储,操作对象是磁盘。(因为它是二进制,如果要读它依然要靠文件系统,比如说对于你电脑上的MySQL,你要读它就需要数据库管理系统(它就是文件系统),这样才可以读到。)
2)文件存储,操作对象是文件和文件夹,比如C:\Users\Downloads\text.doc(底层依然是磁盘,帮你建了一个文件系统,使数据以文件的方式存储和访问,按照目录结构进行组织,便于你的使用以及共享)。
(为什么易于共享呢?相较于上面的块存储,为了读它,大家都有各自的文件系统去访问块存储就比较麻烦,像是读MySQL就要DBMS,读U盘又需要别的。而文件存储的文件系统,强调的是非本地的文件系统,类似于百度网盘,这个文件系统是在百度里的,而不是你本地,所以说文件存储易于共享)
3)对象存储,主要操作对象是对象(对象存储的底层依然是磁盘,它是块存储和文件存储的结合,相比文件存储没有了目录结构,类似于map一样。就像MinIO拿对象,直接给个地址就能拿,也就是更快了,不用像文件存储那样文件套文件,还得一个一个找)。
存储讲解
存储讲解(视频)
数据存储是非常大的内容,还是挺抽象的,只简单区分,不知道理解的对不对,不继续探索了。 - 数据库是哪种存储方式?
上面也提到了,数据库应该是属于块存储。 - Cloud Storage比Database的优势
1)一般云存储上存储的都是用户上传的比较零散的文件,每个文件的类型和组织的方式可以不一致,比如图片,音频,word文件之类的;而数据库中存储中的数据都由数据库进程来直接管理,包括表空间,表结构以及数据存储的方式,是有规则的。
2)就拿图片来说,那数据库存图片不行吗?
行。我之前还实现过,就是本地用户上传头像,我把它转成base64编码(很长很长),然后把它存在数据库里。一个最大的缺点就是数据库(MySQL)不适合存大数据,会严重影响性能。
3)为什么?回答不了,可能比较底层了,简单理解(纯属个人理解):我原本一直不理解的东西是,图片最中都要转成一段编码,其实也就是二进制,存哪不都一样吗;不是的,数据库是为了更好的逻辑搜索,它要建表,很废空间性能,而且为了实现日志、回滚、备份什么什么吧,所以只适合小数据;像图片,因为根本不会对图片本身去改变什么,所以它就是死的,不需要日志、回滚、备份这些东西;所以一般就是数据库存图片地址,用对象存储的方式存图片。
Database
MinIO是数据库吗?
不是,结合上面所写应该也理解了,大家把他叫做“对象存储服务”。
Cloud Computing
云存储相关的功能(云服务器上的功能)依赖于云计算实现,有以下几个好处:
1)成本:本地存储你得买服务器、自己运维等等,成本不可控。而阿里云可以让你完全不用考虑这些问题,甚至监控、动态扩容全给你设计好,成本比较可控。
2)弹性:比如你的网站突然有很多人访问,你就需要加购很多服务器,而云服务器最大的特点就是按需付费,用户多了帮你扩容,少了再给你减。
3)安全:云服务器都给你设计好了,比你设计的安全多了,放心吧。
4)隐私:像是机密数据,还是自己搭吧。
云计算的讲解
Relational Databases
中文叫关系行数据库,其实就是以表格的形式。而非关系型数据库,就是非表格形式的,像是大名鼎鼎的Redis,它就是全部以Key-Value这种形式,相当于整个表就是一个Map。文章来源:https://www.toymoban.com/news/detail-786010.html
总结
数据存储真的是一个非常大的内容,我记得大三时有一门选修课叫“数据存储技术”,当时这门课我感觉很难,听的云里雾里,而且基本都是理论,很难实操,很枯燥,基本做些实验也是去验证这个理论知识,测一下这个数据库的速度、缓存机制、扩容机制等等。今天这个问题把我困了这么久,可见当时掌握的非常糟糕。文章来源地址https://www.toymoban.com/news/detail-786010.html
到了这里,关于MinIO与MySQL对比以及存储的相关知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!