MySQL基本概念
C/S 架構(gòu)
TCP/IP 和socket 連接
實(shí)例:mysqld(守護(hù)進(jìn)程)+ master thread(管理進(jìn)程) + 干活的thread + 被分配給mysql的內(nèi)存
mysql的專有內(nèi)存: 是mysql的一種機(jī)制膛檀,為了讓mysql在一啟動(dòng)就能,在內(nèi)存中。劃出自己的專有內(nèi)存儡司,來更快的響應(yīng)SQL語句
SQL語句
- DQL
- DML
- DDL
- DCL
MySQL的層次結(jié)構(gòu)
SQL 語句執(zhí)行過程
只有了解SQL語句執(zhí)行過程,才能知道如何優(yōu)化SQL語句
image.png
MySQL的邏輯存儲(chǔ)
庫
表
表屬性
列/字段
列屬性
數(shù)據(jù)行/記錄
MySQL的物理存儲(chǔ)
庫: 文件系統(tǒng)上的目錄
表: MyISAM: .frm 存儲(chǔ)表結(jié)構(gòu) .MYD 存儲(chǔ)表數(shù)據(jù) .MYI 存儲(chǔ)索引
或 InnoDB: .frm 存儲(chǔ)表結(jié)構(gòu) .ibd 存儲(chǔ)表數(shù)據(jù)和表索引 ibdata1:數(shù)據(jù)庫字典信息
MySQL InnoDB 的 段區(qū)頁
MySQL默認(rèn)給idb一次 64個(gè)連續(xù)的page,放數(shù)據(jù)毯侦,一個(gè)page放索引
page: 默認(rèn)16kb,可以調(diào)整大小具垫。但調(diào)整后區(qū)大小不變 16*64 變成 32*32
區(qū):默認(rèn)連續(xù)的64個(gè)page侈离,即1M
段:一個(gè)或幾個(gè)區(qū),默認(rèn)一個(gè)表為一個(gè)段
用戶和權(quán)限
創(chuàng)建用戶
create user wordpress@'10.0.0.%' identified by '123';
修改用戶密碼:alter user wordpress@'10.0.0.%' identified by ‘123’筝蚕;
刪除用戶:drop user wordpress@'10.0.0.%';
授權(quán)用戶: grant 權(quán)限 on 庫名.表名 to 用戶名@'IP地址' identified by '123';
回收權(quán)限:revoke 權(quán)限 on 庫名.表名 from 用戶名@'IP地址'
查看權(quán)限: show grants for 用戶名@'IP地址'
權(quán)限列表
ALL (……)
with grant option(給別人授權(quán)的權(quán)限卦碾,一般為本地管理員才會(huì)有,加在授權(quán)語句末尾)
MySQL啟動(dòng)方式
- 腳本啟動(dòng)
- systemctl啟動(dòng)
- mysqld_safe
- mysqld
其中mysqld_safe 可以加啟動(dòng)參數(shù)起宽,用于維護(hù)型任務(wù)洲胖,而且命令行的優(yōu)先級最高,但同時(shí)也會(huì)讀取/etc/my.cnf
關(guān)閉數(shù)據(jù)庫
- 腳本關(guān)閉
- systemctl 關(guān)閉
- mysqladmin -uroot -p123 shutdown
初始化配置
初始化配置是mysql安裝后初始化后燎含,啟動(dòng)之前的配置
初始化配置作用
- 影響數(shù)據(jù)庫的啟動(dòng)宾濒,以及數(shù)據(jù)庫的配置
- 影響客戶端功能
初始化配置的方法
- 初始化配置文件(/etc/my.cnf)
- 啟動(dòng)命令行進(jìn)行設(shè)置(mysqld_safe,mysqld)
- 預(yù)編譯配置(僅限于編譯安裝)
初始化配置文件書寫格式
[標(biāo)簽]
xxx=xxx
xxx=xxx
xxx=xxx
[標(biāo)簽]
xxx=xxx
xxx=xxx
xxx=xxx
---------------------------------------------------------------------------
# 服務(wù)端標(biāo)簽
[mysqld]
[mysqld_safe]
[server] //包含上面兩個(gè)
# 客戶端標(biāo)簽
[mysql]
[mysqladmin]
[mysqldump]
[client] //包含上面的標(biāo)簽
# 生產(chǎn)中建議使用集合小的標(biāo)簽,不要使用范圍性標(biāo)簽[server][client]
MySQL 配置文件簡易模板
[mysqld]
user=mysql
basedir=/application/mysql/
datadir=/data/mysql/data
port=3306
socket=/tmp/mysql.socket
[mysql]
socket=/tmp/mysql.socket
MySQL 配置文件依次讀取順序(了解)
/etc/my.cnf===>/etc/mysql/my.cnf===>/usr/local/mysql/my.cnf====>~/.my.cnf
myqld --defaults-file=xxx.cnf
強(qiáng)制使用配置文件
MySQL連接管理
- TCP/IP
- SOCKET
當(dāng)TCP/IP和SOCKET 同時(shí)使用連接數(shù)據(jù)庫時(shí)屏箍,數(shù)據(jù)用TCP/IP連接
show processlist
查看當(dāng)前連接的線程 localhost 則為socket連接