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的实例(守护进程模式)
实例 = mysqld + Master Thread + worker Threads + 专用内存
公司 = Boss + Manager + worker + 办公室
3. mysqld 程序结构
SQL是什么?
结构化查询语言.关系型数据库中的专用命令.SQL种类
DDL : 数据定义
DCL : 数据控制
DML : 数据操作
DQL : 数据查询-
一条SQL语句的执行逻辑
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对象物理结构
-
宏观
-
微观