😎 MySQL-00-README

😎 MySQL-00-README

mysql-logo

开篇介绍

👋 Hello 大家好,我是 NagaseMySQL 从删库到跑路 ,又到了学习 MySQL 的时刻,接下来就让我们感受一下 MySQL 独特的魅力吧。

如果没有数据库,数据想要 永久保存 ,那么必须要保存到 文件 中,毋庸置疑的是,一个文件只能存在于某一台计算机上。

先不谈我们使用文件来存储数据带来的 效率 问题,并且假设程序所有的组件都运行在 同一台 计算机上,那么用文件来存储数据,一点问题都没有。

HoweverUnfortunately,以上这些假设终究都是假设。我们来看一下,以上这个假设存在下列问题:

  • 程序所有的组件运行在 同一台 计算机上是不可行的

因为这台计算机一旦宕机就意味着整个软件的崩溃,并且程序的执行效率依赖于承载它的硬件,而一台计算机的性能是 有限的 ,受限于目前的硬件水平,就一台计算机性能进行 垂直扩展 是有极限的。

于是我们只能通过 水平扩展 来增强我们系统的整体性能,这就需要我们将整个程序的各个组件分布于 多台计算机 去执行。

  • 数据安全问题

我们将程序的各个组件分布到各台计算机,但需要了解的是,各组件仍然是一个整体,直白的讲,所有组件的数据是需要 共享 的,但每台计算机上的组件都只能操作本机的文件,这就导致了数据必然不一致。

于是我们想到了将 数据应用程序 分离:把 文件 存放在一台计算机上,然后将多台计算机通过网络来访问这台计算机上的文件,也就是共享这台计算机上的文件,一旦共享就意味着竞争,会导致数据不安全,需要加锁处理。

  • 并发

由于我们需要通过网络来访问那台计算机上的文件,因此我们需要编写一个服务端用来管理那台计算机上的文件,然后再编写一个客户端,并且该客户端支持以下功能:

  • 远程连接(支持并发)
  • 打开文件
  • 读写(加锁)
  • 关闭文件

我们在编写任何程序之前,都需要事先写好基于网络操作一台计算机上文件的程序(socket 客户端于服务端程序),于是有人将此类程序写成一个专门的处理软件,这就是 MySQL 等数据库管理系统的由来,但是类似于 MySQL 这样的软件,不仅仅解决的是数据共享的问题,还有查询效率,安全性等一系列的问题。总的来说就是将程序员从数据管理中解脱开来,专注于编写程序的逻辑。

MySQL 是众多数据库管理系统中的一款非常受欢迎的系统,它被大多数企业所使用,因此,在接下来的学习时光中, MySQL 就是我们的主角啦!

posted @ 2021-03-12 22:16  码动世界  阅读(88)  评论(0编辑  收藏  举报