mysql基础

why数据库?

  • 数据库,用来管理数据。包括数据的增删查改等等操作。数据库的本质其实就是对文件的增删查改而已。
  • 但是为什么需要数据库呢?我们直接写进文件不就ok?
  1. 不便于管理。
  2. 不安全。在文件和使用者之间加上一层(即数据库),保护数据安全性,这也是软件设计重要理念之一。
  3. 自己手工控制,难以解决海量数据。

mysql数据库

  • 我也不做多余的废话,直接说重点内容。
  • mysql数据库是数据库的一种,因为其高效,免费,使用的范围很广。

mysql的服务端 && 客户端:

  • mysql分为服务端和客户端。服务端叫做mysqld。后面带上d是Linux下守护进程起名字的习惯。一般服务器端在远端机器上,你通过客户端发起命令,然后服务器端进行解析,然后下达给底层。

分层:

  • 我这里将mysql的服务器分为3层。

mysql分层

  • 最上层负责解析发送过来的命令,是否符合语法,是否安全等等。然后将命令下达给下层。
  • 第二层是一些插件式的存储引擎(storage engine),这些存储引擎负责数据如何存储,什么时候存储,存储到哪儿等一系列具体的存储细节。因为是插件式的,所以mysql可以同时具备多种存储引擎,任意选择。
  • 第三层就是磁盘,真正存储数据的地方。
  • mysql服务的端口号是3306.

工作原理浅析:

  • 根据以上,我们就可以大致的描绘出mysql工作之原理。
  • mysql服务基于tcp协议。客户端发送的命令经过网络传输到服务器(这之间就是tcp/ip5层模型),服务器接收到后,解析命令,确认安全,交付给一个存储引擎,存储引擎存储完毕后返回存储结果给解析层,然后重定向到客户端的socket文件中。
  • 由此可见,mysql就是一个网络服务,就是一个tcp套接字。

mysql的结构

  • mysql是一个大的数据库(database)。你可以在其中创建一些自己的数据库,这些数据库本质上就是一个目录而已。然后在每个database中你可以创建表(tables),这每一个表其实就是文件而已(但是,一张表可能对应好几个文件)。

数据库结构

  • 图比较丑陋,但大体就是如此。

mysql的配置

  • mysql支持很多种字符集,校验方式,存储引擎等。所以你创建的每一张表都需要决定使用什么样式的配置。

  • 所谓的字符集(character set)就是存储的方式,支不支持汉字存储等一系列的规则。比如我们的ascii码使用1个字节存储,可能别的字符集就使用2个字节存储。

  • 字符集的校验规则,指的是字符集比较大小的时候依据的准则,比如我们比较a和B的大小,如果不考虑大小写,那么a<B,如果考虑大小写,则a>B,也就是说,同一字符集,不同的比较规则,对某列数据的排序结果也就会产生不同。

配置文件:

  • 这些配置都可以在配置文件中设置为默认的,这样以后所以的表都是默认这种配置。
/etc/my.cnf   #配置在此文件中
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值