MySQL學習(一) MySQL架構介紹

2021-08-08 18:06:40 字數 3400 閱讀 6203

1、mysql伺服器由sql層和儲存引擎層構成

2、mysql各個模組的特點

mysql 的物理檔案包括日誌檔案、資料檔案和其他檔案

1、日誌檔案

二進位制日誌(binlog):記錄了mysql所有修改資料庫的操作,然後以二進位制的形式記錄在日誌檔案中,其中還包括每條語句所執行的時間和所消耗的資源,以及相關的事務資訊。

查詢日誌: hostname.log,查詢日誌記錄所有的查詢操作,包括所有的 select

操作資訊。

慢查詢日誌: hostname-slow.log,所有 sql 執行的時間超過 long_query_time 變數的語句和達到min_examined_row_limit 條距離的語句 。

通過設定innodb_log_group_home_dir選項來更改日誌的存放位置,通過innodb_log_files_in_group選項來設定日誌的數量。

2、資料檔案

會在 data 目錄下面建立乙個以資料庫為名字的資料夾,用來儲存資料庫中的表檔案資料。

「 .myd 」檔案:myisam 儲存引擎建立表時,每乙個 myisam 型別的表都會有乙個「 .myd 」檔案和乙個「 .myi"檔案。「 .myd 」 檔案主要用來存放資料表的資料檔案。

「 .myi 」檔案:對於myisam儲存引擎來說,可以被快取的內容主要就是源於「 .myi」檔案中 ,「 .myi 」 檔案中主要用來儲存表資料檔案中任何索引的資料樹。

「.ibd」 檔案和「.ibdata」檔案:用來儲存innodb儲存引擎的資料,其中主要包括索引資訊。

3、其他檔案

例如系統配置檔案、 pid 檔案、 socket 檔案等等。

mysql的儲存引擎:myisam、innodb、memory(預設使用 hash 索引)、merge(一組 myisam 表的組合)、berkeleydb( bdb)

innodb 儲存引擎是第三方公司開發的,目前應用最廣泛的資料儲存引擎除了myisam之外就是innodb了 , innodb 寫的處理相對於myisam效率低一些,innodb犧牲了儲存和查詢的效率,支援事務安全支援自動增長列對事務安全的支援,這是 innodb成為mysql最為流行的儲存引擎之一的重要原因。

1、支援事務
start

transaction | begin [work]

commit [work] [and [no] chain] [[no] release]

rollback [work] [and [no] chain] [[no] release]

set autocommit =

2、自動增長列
# 建立表

create

table authors(

id integer

primary

key auto_increment,

name varchar (1o)

) engine=innodb default charset=gbk;

# 插入空值

insert

into authors(name) values (』 ivan'), (』 susan 』),(』 shark 』);

3、 外來鍵約束
# 表sclass

create

table sclass(

id integer

primary

key auto_increment,

cname varchar(20) not

null,

last_update timestamp

notnull

default

current_timestamp

onupdate

current_timestamp

)engine=innodb default charset=gbk;

# 表st,新增外來鍵約束

create

table st(

id integer

primary

key auto_increment,

sname varchar(20) not

null,

class_id integer

notnull,

last_update timestamp

notnull

default

current_timestamp

onupdate

current_timestamp,

foreign

key (class_id ) references sclass (id) on

delete

restrict

onupdate

cascade

)engine=innodb default charset=gbk;

在刪除操作時,如果是刪除主表的資料,子表對應的記錄不會被刪除:如果是更新主表,子表對應的記錄會更新。

innodb 所有的引數基本上都是加了字首「 innodb_」。

mysql伺服器端工具:mysqld、 mysqld_safe、mysql.server、mysqld_multi 、myisamchk 、mysql.server、mysqlbug、mysql_install_db 。

mysql客戶端工具:myisampack、mysql 、 mysqlaccess、mysqladmin、mysqlbinlog、mysqicheck、mysqldump、mysqlbotcopy 、mysql import、 mysqlshow、perror 。

1、mysql 客戶端連線工具一mysql

mysql 的字符集選項可 以在/etc/my.cnf 中配置 ,也可 以在 mysql 命令 中手工指定客戶

端字符集 :mysql -u root -p –default-character-set=gbk,回車,輸入密碼

直接在 mysql 客戶端執行的語旬,對於一些批處理指令碼,這種方式比較方便:mysql -u root -p mysql -e 「select host,user from user」;,回車,輸入密碼

MySql學習(一)mysql基礎架構

可插拔式儲存引擎 檔案系統 客戶端負責發出sql 結構化查詢語言 負責對sql進行進一步處理 management services utillties 了解 提供一些管理工具 connection pool 了解 管理使用者連線,包括下面幾個元件 authentication 授權管理 threa...

MySQL學習筆記(一) MySQL基礎架構

mysql可分為server層和儲存引擎層兩部分 1.1 server層 聯結器 許可權驗證 盡量使用長連線,但是長連線會消耗記憶體,可以定時清理,也可以重新初始化鏈結資源 查快取 一般不用,除非讀多寫少 8.0移除 分析器 詞法分析,語法分析,語法解析 優化器 使用哪個索引 表連線順序 執行器 執...

高效能MySQL學習筆記一 MySQL架構

mysql最與眾不同的特性是 它的儲存引擎架構,這種架構的設計將查詢處理以及其他系統任務和資料的儲存 提取相分離。這種處理和儲存相分離的設計可以在使用時根據效能 特性,以及其他需求來選擇資料儲存的方式。mysql預設採用自動提交模式。設定是否自動提交 1為自動提交,0禁用,禁用後,使用commit或...