美文网首页
mysql(二)

mysql(二)

作者: Freestyle_0f85 | 来源:发表于2019-11-26 12:25 被阅读0次

    什么是数据?

    数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。 数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。 在计算机系统中,数据以二进制信息单元0,1的形式表示。

    为什么要学数据库?

    1.用word,excel不香吗?

    答:1.安全性高

    2.性能好

    3.可以做集群,高可用

    什么是数据库管理系统

    1.管理数据(增删改查)

    2.存储数据

    数据库管理系统的分类

    1.关系型数据库(RDBMS)

    典型产品:MySQL 、Oracle、MariaDB、MSSQL(SQLserver)

    由多张二维表组成,并且每张二维表之间都是相关联的

    2.非关系型数据库(NoSQL)

    典型产品:Redis、MongoDB、elasticsearch(search engine)

    关系型数据库非关系型数据库功能对比

    image

    MySQL的安装

    1.版本的选择,潜规则

    MySQL5.6:GA 6-12个月 小版本是偶数版本

    MySQL5.7:GA 6-12个月 小版本是偶数版本 5.7.17版本以上(MGR MySQL自带的高可用)

    安装过程中5.6和5.7的区别?

    • 1、cmake的时候加入了boost 下载boost.org
    • 2、初始化时 cd /application/mysql/bin/mysql 使用mysqld --initialize 替代mysql_install_db,其它参数没有变化:--user= --basedir= --datadir=
    • 3、--initialize会生成一个临时密码
    • 4、还可以用另外一个参数--initialize-insecure (加上生不成密码)

    关系型数据库和非关系型数据库特点对比

    关系型数据库

    1.二维表

    2.Oracle传统企业,MySQL互联网企业

    3.数据存取是通过SQL(Structured Query Language结构化查询语言)

    4.最大特点数据安全性方面强(ACID)

    什么是ACID?
    ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。
    https://baike.baidu.com/item/acid/10738?fr=aladdin

    非关系型数据库

    1.不是否定关系型数据库,而是做关系型数据库的补充。

    2.想做老大,先学会做老二

    Oracle典型版本

    大版本 经典版本号
    7 7.3.4
    8i(internet) 8.1.7
    9i 9.2.0.8
    10g(grid) 10.2.0.4
    11g 11.2.0.3、11.2.0.4
    12c(cloud) None
    18c None

    MySQL客户端与服务器模型

    image

    C/S结构的服务

    client server

    MySQL客户端:

    1.mysql

    2.mysqldump

    3.mysqladmin

    第三方:

    navicat

    sqlyog

    phpmyadmin

    MySQL的连接方式

    1.TCP/IP

    mysql -uroot -p123 -h10.0.0.52
    

    2.Socket

    mysql -uroot -p123 -S /tmp/mysql.sock
    

    问题

    • mysql -uroot -p123
      • socket
    • mysql -uroot -p123 -h127.0.0.1
      • TCP
    • mysql -uroot -p123 -hlocalhost
      • socket
    • mysql -uroot -p123 -h127.0.0.1 -S /tmp/mysql.sock
      • TCP

    总结
    1.-h不一定都是tcp连接

    2.MySQL默认使用socket连接

    3.-S只允许本地连接,无法远程连接

    4.tcp连接需要建立3次握手,所以MySQL默认使用socket(速度快)

    MySQL服务器构成

    什么是实例?

    一个进程+多个线程+与分配的内存结构

    image.png
    image.png
    image.png

    MySQL的程序结构mysqld

    image

    连接层

    1.验证用户的合法性(用户名,密码,主机域)

    2.提供了两种连接方式(TCP/IP Socket)

    3.建立一个与SQL层连接的线程

    SQL层

    1.接收连接层传来的SQL语句

    2.检测语法

    3.检测语义(DDL,DML,DQL,DCL),检测是show还是select?还是update?还是insert?

    4.解析器,解析整条SQL语句,生成多种执行计划

    5.优化器,选择解析器生成的多种执行计划中,效率最高的一种

    6.执行器,将优化器,优化的最优的一种执行方式,执行

    • 和存储引擎层建立连接(提供一个线程)

    • 接收存储引擎层传来的结构化成表的数据

    7.写缓存

    8.记录日志(binlog)

    存储引擎层

    1.接收SQL层传来的SQL语句

    2.与磁盘交互,读取数据并结构化成表,返回给SQL层

    3.建立一个与SQL层连接的线程

    MySQL的结构

    1.逻辑结构

    数据库管理员,操作的对象

    • 表:(真实数据+元数据)

    • 元数据:列+其他属性(大小,行数...)

    • 列:列名+(数据类型+约束(非空,默认值,主键,非负...))

    2.物理结构

    MySQL的物理结构,是最底层的数据文件

    MySQL Linux
    show databases; ls -l /
    show tables; ls
    use db cd /
    drop database rm -fr
    drop table rm -f
    create database mkdir
    ## 库名,表名,一律小写
    create database ZLS;
    create database zls;
    insert into ZLS.ZLS1 values(1);
    insert into zls.zls1 values(1);</pre>
    

    MySQL单位

    • 段:是由多个区组成的,一张表就是一个段

    • 区:是由64个页组成的,一个区:1M=1024K

    • 页(块):16k为一页

    分区表:是由一个区构成一个段也就是一个表的表.

    只要我有,从搭建数据库开始到现在,所有的binlog日志,那么我可以将MySQL的数据恢复到任意时刻.

    相关文章

      网友评论

          本文标题:mysql(二)

          本文链接:https://www.haomeiwen.com/subject/ffyewctx.html