MySQL-DBA课程-Day01

1.数据库产品介绍

1.什么是数据?

人类认为的数据: 抽象出来的,图片,视频,文字,表格,数字.
计算机: 2进制,16机制.

2.DBMS 数据库管理系统
  • RDBMS: 关系型数据库管理系统
    特点: 二维表结构,提供很丰富的查询功能.高一致性.性能相比较差.

  • NoSQL:
    特点: 无结构化存储数据,性能较高

  • NewSQL:
    PinCAP TiDB
    Aliyun PolarDB + OB
    Tencent TDSQL

3.面试题
  • 笔试: 介绍你了解过的数据库产品?
    RDBMS: MySQL , Oracle ,MSSQL,PG
    NOSQL: Redis, Memcached, MongoDB,ES
    NewSQL: TiDB , PolarDB ,TDSQL
  • 面试: 你们公司都用了哪些数据库产品?
    (1)运维: MySQL 或者 RDS
    (2)DBA: MySQL , Redis ,MongoDB, ES,Oracle

2.MySQL 企业版本选择

1.Oracle MySQL产品线

E : 企业版 , 收费的.
C : 社区版 , 开源的.

2.社区版 版本类型

DMR,RC : 测试开发版.
GA : 稳定发布版.

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
8.0 : 2-3% : 8.0.11+, 8.0.17以上更好.
5.6.38 5.7.20 2017-9-13

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 

3.MySQL 8.0.16版本二进制版本部署

1.系统的准备

(1) 网络配置
ip,hostname,iptables,Selinux

(2) 规划目录
上传软件至:/usr/local
[root@db01 local]# tar xf mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
[root@db01 local]# ln -s mysql-8.0.16-linux-glibc2.12-x86_64 mysql8
创建目录
数据路径 mkdir -p /data/mysql/data_3306
binlog日志路径 mkdir -p /data/mysql/binlog_3306

(3) 用户创建
useradd mysql

(4) 授权
chown -R mysql.mysql /usr/local/mysql8 /data

(5) 环境变量

vim /etc/profile
添加:
export PATH=/usr/local/mysql8/bin:$PATH

[root@db01 local]# source /etc/profile

(6)残留处理
yum remove mariadb-libs -y

(7) 依赖包安装
yum install -y libaio-devel

2 数据初始化 (建系统库)
  • 无密码初始化
    mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql8 --datadir=/data/mysql/data_3306
  • 创建密码初始化
    mysqld --initialize --user=mysql --basedir=/usr/local/mysql8 --datadir=/data/mysql/data_3306
  • 5.7 以前版本:
    /usr/local/mysql56/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql56 --datadir=/data/mysql/data_3306
3.配置文件准备
cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql8
datadir=/data/mysql/data_3306
server_id=6
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF
4.准备启动脚本

cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
systemctl start mysqld

4.体系结构与基础管理

1. MySQL的工作模型

C/S : 客户端/服务端模型

  • 服务端程序
    mysqld

  • 客户端程序
    mysql
    mysqldump
    mysqladmin
    ...

  • 连接协议(Linux)
    网络套接字: TCP/IP网络连接串 ----> mysql -uroot -p123 -h[图片上传失败...(image-a679c5-1576588761915)]

10.0.0.51 -P3306
本地套接字: socket本地连接串 ----> mysql -uroot -p123 -S /tmp/mysql.sock

2. MySQL的实例(守护进程模式)
11.png

实例 = mysqld + Master Thread + worker Threads + 专用内存
公司 = Boss + Manager + worker + 办公室

3. mysqld 程序结构
  • SQL是什么?
    结构化查询语言.关系型数据库中的专用命令.

  • SQL种类
    DDL : 数据定义
    DCL : 数据控制
    DML : 数据操作
    DQL : 数据查询

  • 一条SQL语句的执行逻辑


    1.png
4.查询QC(query_cache)
  • 案例: 5.7.23 , 16C_64G , 版本 按月分区表 , 做压力测试

开启QC之前:
select * from a where aa=xxx;
QPS 3000+

开启之后:
select * from a where aa=xxx;
QPS 600+

热点数据,可以用redis缓存数据库承当.

4. MySQL对象逻辑结构

库 : database / schema
库名
属性

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

5. MySQL对象物理结构
  • 宏观


    Q$~9_8~UKZ~9Z@75`{V4)QB.png
  • 微观


    2%%@VL3)TIXU()G9WI0A$`Q.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容