Mysql學習筆記 Mysql體系結構和儲存引擎

2021-08-14 09:24:06 字數 1395 閱讀 1832

注:使用了mysql技術內幕 第二版書籍

1.定義資料庫和例項

資料庫:物理作業系統檔案或其他形式檔案型別的集合。即儲存資料資料的檔案,可為frm、myd等格式檔案,也可為記憶體中資料。

資料庫例項:用於運算元據庫檔案的程式。

例項與資料庫常常是一一對應的,即乙個例項用於操作乙個資料庫,乙個資料庫被乙個例項操作。在集群情況下,可能存在乙個資料庫被多個資料庫例項使用的情況。

mysql是單程序多執行緒。資料庫例項在系統上的表現就是乙個程序。

啟動例項時,會讀取配置檔案,根據配置檔案的引數來啟動資料庫例項。

mysql --help | grep my.cnf

order of preference, my.cnf, $mysql_tcp_port,

/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

按照從左到右順序讀取配置檔案,若有相同引數,以靠右引數為準。

2.mysql體系結構

mysql區別於其他資料庫的最重要的特點是外掛程式式的表儲存引擎。外掛程式式儲存引擎架構提供了一系列標準的管理和服務支援,這些標準與儲存引擎本身無關,可能是每個資料庫系統本身所必需的,如sql分析和優化器等,而儲存引擎是底層物理結構的實現,每個儲存引擎可以按照自己的意願來進行開發。

儲存引擎是基於表的,而不是資料庫。

3.儲存引擎

每個表都可以根據需求,使用不同的儲存引擎。每個儲存引擎都有各自的特點。可以檢視mysql支援的引擎及他們的區別。

ndb:集群儲存引擎,share nothing 集群架構。資料放在記憶體中,可以將非索引資料放在磁碟上,主鍵查詢速度極快。

memory:將表中資料儲存於記憶體中,若資料庫重啟或崩潰,資料將消失,適合做臨時表。預設使用hash索引。只支援表鎖,不支援text與blob列型別。mysql資料庫使用memory儲存引擎儲存查詢中間結果集,如果結果集大於memory容量設定,或含有text或blob型別字段,則mysql會把其轉到myisam儲存引擎表而存到磁碟上,而myisam不快取資料檔案,因此對查詢效能有損失。

archive:只支援insert和select操作。支援索引、行鎖;使用zlib演算法將資料行壓縮後儲存,壓縮比一般為1:10,適合儲存歸檔資料,如日誌。

federated:並不存放資料,指向遠端mysql伺服器上表。此引擎預設未開啟,開啟federated儲存引擎只需要在my.cnf檔案中增加『federated』就可以。

maria:用於mariadb中,用以替換myisam。

mysql做筆記 mysql學習筆記

alter table 新增,修改,刪除表的列,約束等表的定義。檢視列 desc 表名 修改表名 alter table t book rename to bbb 新增列 alter table 表名 add column 列名 varchar 30 刪除列 alter table 表名 drop ...

mysql學習筆記 51 mysql學習筆記

初學mysql時整理,隨時更新 資料操作 增 insert into 表名 字段列表 values 值列表 值列表 如果要插入的值列表包含所有字段並且順序一致,則可以省略字段列表。可同時插入多條資料記錄!replace 與 insert 完全一樣,可互換。insert into 表名 set 欄位名...

mysql學習筆記 51 Mysql 學習筆記

一.首先進入mysql mysql u root p新增使用者許可權設定 grant all privileges on to jerry localhost identified by aa1234567 只允許本機訪問 grant all privileges on to jerry 10.80...