1.1 數(shù)據(jù)庫和實例的區(qū)別
數(shù)據(jù)庫:物理操作系統(tǒng)文件和其他形式文件類型的集合年局。
實????例:MySQL數(shù)據(jù)庫由后臺線程以及一個共享的內(nèi)存區(qū)組成。共
享內(nèi)存可以被運行的后臺線程所共享咸产,MySQL數(shù)據(jù)庫實例在系統(tǒng)上表現(xiàn)就是一個進(jìn)程矢否。
從概念上來說,數(shù)據(jù)庫是文件的集合脑溢,依照某種數(shù)據(jù)模型組織起來并存放于二級存儲器的數(shù)據(jù)集合僵朗。數(shù)據(jù)庫實例是程序,是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件焚志,用戶對數(shù)據(jù)庫數(shù)據(jù)的任何操作都是在數(shù)據(jù)庫實例下去進(jìn)行的衣迷。應(yīng)用程序只有通過數(shù)據(jù)庫實例才能和數(shù)據(jù)庫打交道。
啟動實例時酱酬,MySQL數(shù)據(jù)庫會去讀取配置文件壶谒,如果沒有配置文件,MySQL數(shù)據(jù)庫會按照編譯時的默認(rèn)參數(shù)設(shè)置啟動實例膳沽『共耍可以使用mysql --help|grep my.cnf
查看MySQL數(shù)據(jù)庫會查找哪些配置文件,文件的順序越后挑社,優(yōu)先級越高
從上圖可以看出MySQL的存儲引擎是插件式的陨界。特別注意,存儲引擎是基于表的痛阻,而不是數(shù)據(jù)庫的
1.2 MySQL的存儲引擎種類
InnoDB:支持事務(wù)菌瘪,主要面向在線事務(wù)處理(OTLP)的應(yīng)用,行鎖設(shè)計阱当,支持外鍵俏扩,并支持類似Oracle的非鎖定讀,即默認(rèn)讀取操作不會產(chǎn)生鎖弊添。從MySQL數(shù)據(jù)庫5.5.8開始录淡,InnoDB存儲引擎是默認(rèn)的存儲引擎。InnoDB引擎實現(xiàn)了SQL標(biāo)準(zhǔn)的4種隔離級別油坝,默認(rèn)為REPEATABLE級別嫉戚。
MyISAM:不支持事務(wù),表鎖設(shè)計澈圈,支持全文索引彬檀,只要面向?qū)慜LAP數(shù)據(jù)庫應(yīng)用。在MySQL5.5.8之前瞬女,MyISAM是MySQL默認(rèn)的存儲引擎(除Window版本外)凤覆。MyISAM引擎的緩沖池只緩存索引文件,而不緩存數(shù)據(jù)文件
1.3 連接MySQL的方式
連接MySQL操作是一個連接進(jìn)程和MySQL數(shù)據(jù)庫實例進(jìn)行通信
- TCP/IP????
mysql -h ip -u username -p
??在通過TCP/IP連接到數(shù)據(jù)庫實例的時候拆魏,MySQL會檢查user表的權(quán)限來判斷該客戶端IP是否能連接到MySQL實例 - 命名管道和共享內(nèi)存
- UNIX域套接字