分布式
分布式什么我不知道,但是荡剑式和破剑式我倒是知道。哈哈哈,欢迎收看最新一期的龙哥嘚吧嘚。
今天咱们来聊一聊数据库。
现在经常听一些朋友,动不动就问,你会分布式吗,高并发和多线程呢?
这个论调就好像我突然一下回到了13年,那时候人们只要一听你会某种cms就已经把你认定为了一个标准的程序员一样。
所谓分布式,是数据库的一种标准。因为数据库有很多种,比如常见的mysql,sqlserver,oracle,mongdb等等。
比如说吧,mysql就是一个标准的关系型数据库,其实数据库的标准一共就两种,一种是关系型数据库,一种是分布式。
有什么不同?
别说了,我懵了。什么关系,什么分布。不都是存东西吗。
那我们先说说关系型数据库:
是的,其实数据库就是用来存东西的。但也看怎么存。说简单点,关系型数据库存的就是表格,把你的数据一行一行,一列一列的写成一个excel。然后保存到硬盘的某个地方。
再说简单点,给数字排序,1后面肯定是2,2后面肯定是3。这就是最基本的线性关系。
这样线性关系有好处也有坏处,好处就是一致性高(例如你同时执行三条语句,只要一个报错,其余全部不执行。),安全和维护方便,硬件消耗小。
缺点是,正因为他用了这个方式,所有数据都存成了一个excel。不管你查哪个数据都要调用整个表,而且,他只用硬盘不用内存,要知道内存比硬盘快的可不是一点半点。所以导致了他性能低下。
回头再看分布式:
分布式,是把数据存成json,注意,json可没有类似于数组那样的下标,也就是说,分布式只有层级关系,而没有类似数组那样的逻辑关系。
分布式因为没有线性关系,所以他也不需要把数据存成一个excel了,他直接存成了一个一个的普通文本文件,使用的时候,在根据层级关系组合成一个大型数据库。
而且在储存的时候,使用内存而不是硬盘,这点太可怕了,因为内存比硬盘速度快,所以那闪电一般的储存和查询速度优势立刻高下立判。
不过,你说分布式毫无缺点吗,至少从咱们上面说的来看,也不全是,首先,它使用内存而不是硬盘,导致了它会一次性占用大量的硬件性能,然后,当我们需要一个严谨关系的文件数据库时,例如,银行系统。前面我们说了分布式数据库,很难保持操作的一致性(一次执行多条语句的时候,一个出错全部停止。但是,分布式依然会把不出错的执行完)这就比较坑了。
所以使用分布式还是关系型数据库还是要看具体的业务。如果你做的是产品而不是数据收集,就不要使用分布式,反过来也一样,如果你需要不停的收发数据,例如营销推广收集用户手机号等。
分布式将会是你的不二选择。
总结
那么,分布式数据库有哪些呢,目前来看,mongodb和elasticsearch是唯二的选择,但是这俩数据库在操作上elasticsearch要更简单一些,它的所有操作都通过api实现,后面我们会详细讲解。
好的,现在你应该已经对分布式数据库有了一个基本的概念了,那么,让我们马上上手来安装一个elasticsearch一览分布式数据库的英姿吧。