1.數(shù)據(jù)庫(kù)產(chǎn)品介紹
1.什么是數(shù)據(jù)?
人類(lèi)認(rèn)為的數(shù)據(jù): 抽象出來(lái)的,圖片,視頻,文字,表格,數(shù)字.
計(jì)算機(jī): 2進(jìn)制,16機(jī)制.
2.DBMS 數(shù)據(jù)庫(kù)管理系統(tǒng)
RDBMS: 關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)
特點(diǎn): 二維表結(jié)構(gòu),提供很豐富的查詢(xún)功能.高一致性.性能相比較差.NoSQL:
特點(diǎn): 無(wú)結(jié)構(gòu)化存儲(chǔ)數(shù)據(jù),性能較高NewSQL:
PinCAP TiDB
Aliyun PolarDB + OB
Tencent TDSQL
3.面試題
- 筆試: 介紹你了解過(guò)的數(shù)據(jù)庫(kù)產(chǎn)品?
RDBMS: MySQL , Oracle ,MSSQL,PG
NOSQL: Redis, Memcached, MongoDB,ES
NewSQL: TiDB , PolarDB ,TDSQL - 面試: 你們公司都用了哪些數(shù)據(jù)庫(kù)產(chǎn)品?
(1)運(yùn)維: MySQL 或者 RDS
(2)DBA: MySQL , Redis ,MongoDB, ES,Oracle
2.MySQL 企業(yè)版本選擇
1.Oracle MySQL產(chǎn)品線(xiàn)
E : 企業(yè)版 , 收費(fèi)的.
C : 社區(qū)版 , 開(kāi)源的.
2.社區(qū)版 版本類(lèi)型
DMR,RC : 測(cè)試開(kāi)發(fā)版.
GA : 穩(wěn)定發(fā)布版.
3.企業(yè)版本選擇
5.5 : 7-8%
5.6 : 50% : 5.6.3x : 5.6.34 -5.6.42 盡量選擇雙數(shù)版
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.同源產(chǎn)品
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版本二進(jìn)制版本部署
1.系統(tǒng)的準(zhǔn)備
(1) 網(wǎng)絡(luò)配置
ip,hostname,iptables,Selinux
(2) 規(guī)劃目錄
上傳軟件至:/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
創(chuàng)建目錄
數(shù)據(jù)路徑 mkdir -p /data/mysql/data_3306
binlog日志路徑 mkdir -p /data/mysql/binlog_3306
(3) 用戶(hù)創(chuàng)建
useradd mysql
(4) 授權(quán)
chown -R mysql.mysql /usr/local/mysql8 /data
(5) 環(huán)境變量
vim /etc/profile
添加:
export PATH=/usr/local/mysql8/bin:$PATH
[root@db01 local]# source /etc/profile
(6)殘留處理
yum remove mariadb-libs -y
(7) 依賴(lài)包安裝
yum install -y libaio-devel
2 數(shù)據(jù)初始化 (建系統(tǒng)庫(kù))
- 無(wú)密碼初始化
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql8 --datadir=/data/mysql/data_3306 - 創(chuàng)建密碼初始化
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.配置文件準(zhǔn)備
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.準(zhǔn)備啟動(dòng)腳本
cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
systemctl start mysqld
4.體系結(jié)構(gòu)與基礎(chǔ)管理
1. MySQL的工作模型
C/S : 客戶(hù)端/服務(wù)端模型
服務(wù)端程序
mysqld客戶(hù)端程序
mysql
mysqldump
mysqladmin
...連接協(xié)議(Linux)
網(wǎng)絡(luò)套接字: TCP/IP網(wǎng)絡(luò)連接串 ----> mysql -uroot -p123 -h[圖片上傳失敗...(image-a679c5-1576588761915)]
10.0.0.51 -P3306
本地套接字: socket本地連接串 ----> mysql -uroot -p123 -S /tmp/mysql.sock
2. MySQL的實(shí)例(守護(hù)進(jìn)程模式)

實(shí)例 = mysqld + Master Thread + worker Threads + 專(zhuān)用內(nèi)存
公司 = Boss + Manager + worker + 辦公室
3. mysqld 程序結(jié)構(gòu)
SQL是什么?
結(jié)構(gòu)化查詢(xún)語(yǔ)言.關(guān)系型數(shù)據(jù)庫(kù)中的專(zhuān)用命令.SQL種類(lèi)
DDL : 數(shù)據(jù)定義
DCL : 數(shù)據(jù)控制
DML : 數(shù)據(jù)操作
DQL : 數(shù)據(jù)查詢(xún)-
一條SQL語(yǔ)句的執(zhí)行邏輯
1.png
4.查詢(xún)QC(query_cache)
- 案例: 5.7.23 , 16C_64G , 版本 按月分區(qū)表 , 做壓力測(cè)試
開(kāi)啟QC之前:
select * from a where aa=xxx;
QPS 3000+
開(kāi)啟之后:
select * from a where aa=xxx;
QPS 600+
熱點(diǎn)數(shù)據(jù),可以用redis緩存數(shù)據(jù)庫(kù)承當(dāng).
4. MySQL對(duì)象邏輯結(jié)構(gòu)
庫(kù) : database / schema
庫(kù)名
屬性
表 : table
表名
表屬性
字段(列)
數(shù)據(jù)行(記錄)
5. MySQL對(duì)象物理結(jié)構(gòu)
-
宏觀(guān)
Q$~9_8~UKZ~9Z@75`{V4)QB.png
-
微觀(guān)
2%%@VL3)TIXU()G9WI0A$`Q.png


