存儲(chǔ)引擎:
可以使用? show variables like'%storage_engine';
show engines亚皂;來查看存儲(chǔ)引擎
Mysql的常用存儲(chǔ)引擎
innoDB? 事務(wù)型數(shù)據(jù)庫的首選引擎蜻底,是Mysql默認(rèn)的存儲(chǔ)引擎
innoDB為Mysql提供了具有提交碍庵,回滾了赌,崩潰恢復(fù)能力的事務(wù)安全存儲(chǔ)引擎巩那,它還支持外鍵約束為數(shù)據(jù)庫提供了較好的一致性吏夯,支持行級(jí)鎖,自帶緩沖池即横,可以將數(shù)據(jù)和索引緩存到內(nèi)存中噪生,用于又眾多需求高性能的大型數(shù)據(jù)庫站點(diǎn)上。
Mylsam這個(gè)是基于isam的存儲(chǔ)引擎东囚,并對(duì)其進(jìn)行擴(kuò)展跺嗽,它在web,數(shù)據(jù)倉儲(chǔ)和其他應(yīng)用環(huán)境下最長使用的存儲(chǔ)引擎之一页藻,它具有高插入和查詢速度但是不支持事務(wù)桨嫁。
MEMORY存儲(chǔ)引擎將表中的數(shù)據(jù)存儲(chǔ)到內(nèi)存中為了查詢和引用其他表數(shù)據(jù)快速訪問。
在創(chuàng)建表的時(shí)候就可以選擇搜素引擎如:
create table student(name varchar(20))engine=InnDB? charset=‘utf8’
innodb是將一張表存儲(chǔ)為兩個(gè)文件
student.frm? 這是表的結(jié)構(gòu)和索引
student.ibd? 存儲(chǔ)數(shù)據(jù)? 注意這個(gè)文件時(shí)有限的超出范圍后自動(dòng)創(chuàng)建其他的文件
注意文件時(shí)不可以移動(dòng)的
MyISAM是將一張表存儲(chǔ)為三個(gè)文件
student.frm 存儲(chǔ)表的結(jié)構(gòu)
student.myd 存儲(chǔ)數(shù)據(jù)
student.myi 存儲(chǔ)表的索引
這個(gè)存儲(chǔ)引擎生成的文件是可以任意移動(dòng)的
關(guān)系和外鍵:
表與表之間
一對(duì)一:如在學(xué)生表中的有一條課程編號(hào)的這個(gè)字段惕橙,而在課程表中也有編號(hào)這個(gè)字段瞧甩,然后這兩個(gè)表的字段相匹配
一對(duì)多:在student表中的一條記錄而在課程表中對(duì)應(yīng)著多條記錄
多對(duì)多:這個(gè)需要一個(gè)第三方表來作為兩張表的交集。
外鍵:是一種約束為了讓數(shù)據(jù)保持一致性但是注意建立外鍵會(huì)使性能降低 所以說我們一般在顯示中盡量不使用外鍵來約束
格式:時(shí)需要在約束的字段中添加一個(gè) foreign key? 這個(gè)屬性
注意添加外鍵后數(shù)據(jù)就必須保持一致否則的話數(shù)據(jù)庫會(huì)報(bào)錯(cuò)弥鹦。