引擎致开,從字面上理解就是發(fā)動機(jī)峰锁,其實針對mysql也是一樣,存儲引擎就是mysql的發(fā)動機(jī)双戳,發(fā)動機(jī)要安裝在不同的機(jī)器上面虹蒋,對mysql來說,不同的機(jī)器就是不同的數(shù)據(jù)表拣技,每個表都有它的引擎千诬,因為我們在執(zhí)行sq語句的時候,最小的操作單位就是數(shù)據(jù)表了膏斤,所以把引擎放在表里面徐绑,然后發(fā)動機(jī)也有不同的規(guī)格,所以我們的引擎也有不同的庫莫辨,由于mysql是開源的傲茄,所以mysql的引擎很多,最常用的就是MyISAM沮榜,InnoDB盘榨,在mysql5.6以上的版本,默認(rèn)的引擎是innodb,引擎都有不同的作用蟆融,所以在建表的時候要選擇合適的引擎草巡;
myIsam:全文索引(full text) ,不支持事務(wù)型酥,表級鎖山憨,崩潰恢復(fù)不好
innodb:不支持全文索引,支持事務(wù)弥喉,行級鎖郁竟,崩潰恢復(fù)好,性能快由境,優(yōu)先推薦使用innodb;
查看默認(rèn)引擎:我們?nèi)ヅ渲梦募y.ini可以找到默認(rèn)引擎棚亩,在這里也可以修改默認(rèn)引擎蓖议;
查看各個表對應(yīng)的引擎:
通過查看創(chuàng)建表語句可以看到數(shù)據(jù)表對應(yīng)的引擎;
查看所有表的引擎:show table status \G;
查看數(shù)據(jù)庫是否支持的引擎:
指定表的引擎:在創(chuàng)建表的時候讥蟆,后面跟一個參數(shù)engine就可以了勒虾;
修改表引擎:alter? table 表名? engine=引擎;
字符集:不管是數(shù)據(jù)庫還是數(shù)據(jù)表都有它的編碼攻询;
默認(rèn)編碼:我們可以在這里指定默認(rèn)編碼从撼;也可以修改默認(rèn)編碼,修改之后一定要記得重啟服務(wù)钧栖;
查看數(shù)據(jù)庫編碼:我們指定了默認(rèn)編碼所以默認(rèn)是utf8;
指定數(shù)據(jù)庫編碼:
修改數(shù)據(jù)庫編碼:
查看數(shù)據(jù)表編碼:由于有默認(rèn)指定低零,所以默認(rèn)是utf8;
指定表編碼:
修改表編碼:
字符集校對:主要是解決排序和字符分組問題,每一種字符都有它的校對方式拯杠,我們選的是哪一種字符掏婶,就用哪一種字符的校對方式:
查看所有的字符集校對:show character set;
我們給表指定了編碼,默認(rèn)的校對就是該編碼所對應(yīng)的校對潭陪,各種校對和編碼必須對應(yīng)起來雄妥,不能混用,也可以指定校對方式依溯,那么編碼就是該校對方式對應(yīng)的編碼老厌;
查看表所對應(yīng)的字符集校對:show tables status ;我們可以看到collation對應(yīng)的是utf8_general_ci,那么這張表的編碼肯定是utf8;
指定表的字符集校對:collate=校對規(guī)則;