day 01 MySQL 简介及安装

day 01 MySQL 简介及安装

第一章 MySQL 大纲介绍

1.官方定义的MySQL DBA 工作内容

(1)运维DBA
初级:各版本、各平台安装搭建、升级
中级:体系结构原理、基础管理(启动关闭、初始化配置文件管理、多实例管理、用户权限管理、基本SQL(增删改查))日志管理、备份与恢复、主从复制(构建、状态监控)
高级:高可用(MGR、InnoDB Cluster)、高性能(优化)
(2)开发DBA
懂至少一门开发语言 :JAVA、Python
基本SQL语句深入学习(增删改查)、数据库结构设计(建模)
高级SQL:存储过程、函数、触发器、视图、事件

2、老男孩MySQL课程中级DBA要求(80%以上学会)

(1)MySQL 5.7 安装部署(二进制)*****
    编译自己扩展
(2)MySQL升级步骤扩展 ***
(3)MySQL5.7 体系结构原理 *****
(4)MySQL基础管理  *****
(5)基础SQL语句使用 *****
(6)SQL高级应用  ***
(7)Information_schema获取元数据 ***
(8)索引、执行计划管理(基础优化)*****
(9)存储引擎  *****
(10)日志管理 *****
(11)备份与恢复 ******
(12)主从复制及架构演变 ******
(13)传统的高可用及读写分离(MHA&Atlas)****
(14)传统分布式架构设计与实现-扩展(Mycat--->DBLE,DRDS)**
(15)MySQL 5.7 高可用及分布式架构-扩展(MGR,InnoDB Cluster)***
(16)MySQL优化(安全、性能) ****
(17)MySQL 监控(zabbix、Open-falcon)    ****
 (18) RDS(阿里云课程)    *****

额外要会的:
    Redis
    mongodb     
了解: 
    PG
    Oracle  

第二章: MySQL 介绍和安装

1、什么是数据?

数据:文字、图片、视频。。。人类认知的数据表现方式
计算机:二进制、16进制的机器语言
基于数据的重要性和复杂性的不同,我们可能有不同的管理方式。

哪些数据是适合存储到数据库的呢?
重要性比较高的
关系较复杂的数据

2. 什么是数据库管理系统(DBMS)? ---R (relative) 关系型

RDBMS: 关系型数据库管理系统   二维表结构,比较适合于安全级级别要求高(高一致性)以及关系复杂的数据,但性能较差(相比NOsql)
NoSQL:非关系型数据库管理系统   无结构化存储数据适合于高性能存取数据,一般是配合RDBMS进行使用的,针对大数据处理分析,分布式架构更加擅长
newSql: 
  PinCAP TiDB
  Aliyun PolarDB + OB 
  TentCent TDSQL

3.数据库管理系统种类

RDBMS:  MySQL 、oracle、MSSQL(SQL Server)、PG
NoSQL: redis,Memcached,MongoDB,ES(ElasticSearch)
NewSQL: TiDB , PolarDb , TDSQL

4.MySQL 企业版本选择

4.1 Oracle MySQL产品线
 企业版  ,  收费的.
 社区版  ,  开源的.
4.2 社区版 版本类型
DMR,RC  : 测试开发版.
GA      : 稳定发布版.  5.6  5.7

4.3 企业版本选择 
    5.5 :   7-8%
    5.6 :   50%    : 5.6.3x : 5.6.34 -5.6.42 尽量选择双数版
    5.7 :   40%    : 5.7.2x : 5.7.20 -5.7.26  ##2017年    5.7.20版本 2017-9-13
    8.0 :   2-3%   : 8.0.11+, 8.0.17以上更好.  

4.4 同源产品 
Oracle MySQL  :  5.0 5.1 5.5  5.6 5.7 8.0 9.0
MariaDB       :  5.0 5.1 5.5  10.x  .... 
Percona       :  5.0 5.1 5.5  5.6 5.7 8.0 

5.MySQL 5.7.26版本二进制版本部署

1.(1) 规划目录
[root@db01 ~]# cd /usr/local/
 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz 
[root@db01 local]#  tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
[root@db01 local]# ln -smysql-5.7.26-linux-glibc2.12-x86_64.tar.gz mysq57
[root@db01 ~]# mkdir -p /data/mysql/data_3306      #数据路径
[root@db01 ~]# mkdir -p /data/mysql/binlog_3306    #binlog日志路径(日志章节说明)
(2) 用户创建 
[root@db01 ~]# useradd mysql
(3)授权 
[root@db01 local]# chown -R mysql.mysql /usr/local/mysql57  /data
(4) 环境变量
vim /etc/profile
#添加:
export PATH=/usr/local/mysql57/bin:$PATH
[root@db01 local]# source /etc/profile
(5)残留处理
[root@db01 bin]# rpm -qa |grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@db01 bin]# yum remove mariadb-libs -y 
(6) 依赖包安装
[root@db01 bin]# rpm -qa |grep libaio-devel
[root@db01 bin]# yum install -y libaio-devel

2. 数据初始化 (建系统库)
[root@db01 data_3306]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data_3306
3. 配置文件准备
cat > /etc/my.cnf <

第三章 体系结构与基础管理

1. MySQL的工作模型
C/S : 客户端/服务端模型

1.1 服务端程序
mysqld
1.2 客户端程序 
mysql
mysqldump
mysqladmin等

1.3 连接协议(Linux)
网络套接字:  TCP/IP网络连接串 ----> mysql -uroot -p123 -h10.0.0.51 -P3306 
本地套接字:  socket本地连接串 ----> mysql -uroot -p123 -S /tmp/mysql.sock
2 MySQL的实例
实例 = mysqld +  Master Thread + worker Threads + 专用内存
公司 = Boss   +   Manager    +  worker  + 办公室 

MySQL实例

1.mysqld守护进程

2.预分配的内存(mysql 启动时就将内存分配好了)

3. mysqld 程序结构
3.1 SQL是什么?
结构化查询语言.关系型数据库中的专用命令.
3.2 SQL种类 
DDL : 数据定义 Data Definition Language
DCL : 数据控制 Data Control Language
DML : 数据操作 Data Manipulation Language
DQL : 数据查询 Data Query Language 
3.3 一条SQL语句的执行逻辑


4. MySQL对象逻辑结构(能看见的结构)
库  : database / schema 
    库名
    属性

表  : table  (二维表结构)
    表名
    表属性
    字段(列)
    数据行(记录)


5. MySQL对象物理结构
宏观结构:
表MyISAM
user.frm  (表结构)
user.MYD  (数据行)
user.MYI  (索引)
表InnoDB
time_zone.frm  (表结构)
time_zone.ibd (数据行+ 索引)

InnoDB 微观结构:
InnoDB,是MySQL的数据库引擎之一,现为MySQL的默认存储引擎,为MySQL AB发布binary的标准之一

segment 段(一个表)

extent 区 (簇) 连续的64个page页是一个区 ,默认为1M

page 页(配置) ,为最小单位 16kb ,所以为4个os block

os block 大小为4K , 即为连续的8个扇区

扇区 512B

索引就是把随机IO变成顺序IO

你可能感兴趣的:(day 01 MySQL 简介及安装)