第一章 MySQL架構(gòu)與歷史(二)(4.4%)

1.5 MySQL的存儲引擎

MySQL將每個(gè)數(shù)據(jù)庫(schema ski:m?)保存在數(shù)據(jù)目錄下的一個(gè)子目錄僵控。創(chuàng)建表時(shí),會(huì)創(chuàng)建一個(gè)與表同名的 .frm 文件鱼冀。

通過以下命令报破,可以查看表信息

mysql> SHOW TABLE STATUS LIKE 'USER' \G

查詢結(jié)果

1.5.1 InnoDB存儲引擎

InnoDB是MySQL的默認(rèn)事務(wù)引擎,也是最重要的千绪,使用最廣泛的存儲引擎充易。它被設(shè)計(jì)用來處理大量的短期事務(wù),短期事務(wù)大部分情況是正常提交的荸型,很少會(huì)被回滾盹靴。

InnoDB歷史

略...

InnoDB概覽

InnoDB采用MVCC來支持高并發(fā),并且實(shí)現(xiàn)了四個(gè)標(biāo)準(zhǔn)的隔離級別瑞妇。默認(rèn)級別為 可重復(fù)讀稿静,并且通過間隙鎖策略防止幻讀的出現(xiàn)。

InnoDB表是基于聚簇索引建立的辕狰。聚簇索引對主鍵查詢有很高的性能改备。不過它的二級索引中必須包括主鍵列,所以如果主鍵列很大的話柳琢,其他的所有索引都會(huì)很大绍妨。

InnoDB的存儲格式平臺獨(dú)立的,也是就是說可以將數(shù)據(jù)和索引文件在不同平臺中互相復(fù)制柬脸。

InnoDB通過一些機(jī)制和工具支持真正的熱備份他去。


1.5.2 MyISAM 存儲引擎

1.5.3 MySQL內(nèi)建的其他存儲引擎

1.5.4 第三方存儲引擎


1.5.5 選擇合適的引擎

考慮因素:

1.事務(wù)

如果應(yīng)用需要事務(wù)支持,那么InnoDB是目前最穩(wěn)定的經(jīng)過驗(yàn)證的選擇倒堕。如果不需要事務(wù)灾测,主要是SELECT和INSERT操作,那么MyISAM是不錯(cuò)的選擇。一般日志型的應(yīng)用比較符合這一特性媳搪。

2.備份

如果需要在線熱備份铭段,那么選擇InnoDB就是基本的要求。

3.崩潰回復(fù)

MyISAM崩潰后發(fā)生損壞的概率比InnoDB要高很多秦爆,而且恢復(fù)速度也要慢序愚。所以,即使不需要事務(wù)支持等限,也應(yīng)選擇InnoDB引擎爸吮。


1.5.6 轉(zhuǎn)換表的引擎

ALTER TABLE

mysql> ALERT TABLE table_name ENGING = InnoDB;

執(zhí)行時(shí)間長,MySQl會(huì)按行將數(shù)據(jù)從原表復(fù)制到一張新表中望门,在復(fù)制期間可能會(huì)消耗系統(tǒng)所有的I/O能力形娇,同時(shí)原表會(huì)加上讀鎖。

同時(shí)會(huì)丟失原引擎相關(guān)的所有特性筹误。


導(dǎo)出與導(dǎo)入

使用 mysqldump 工具將數(shù)據(jù)導(dǎo)出到文件桐早。同時(shí)要在執(zhí)行語句前加上DROP TABLE table_name語句;


創(chuàng)建和查詢

mysql> create table users_copy like users;? ? #根據(jù)目標(biāo)表創(chuàng)建新表

mysql> alter table users_copy engine=innodb;??? #修改新表引擎類型

mysql> insert into users_copy select * from users;??? #將目標(biāo)表數(shù)據(jù)導(dǎo)入新表

如果數(shù)據(jù)量大,可以考慮分批處理厨剪。

mysql> start transaction;

mysql> insert into users_copy select * from users where between x and y;

mysql> commit;

為了避免手工操作導(dǎo)致的失誤和問題哄酝,可以使用 pt-online-schema-change 進(jìn)行操作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末祷膳,一起剝皮案震驚了整個(gè)濱河市炫七,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钾唬,老刑警劉巖万哪,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異抡秆,居然都是意外死亡奕巍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門儒士,熙熙樓的掌柜王于貴愁眉苦臉地迎上來的止,“玉大人,你說我怎么就攤上這事着撩∽绺#” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵拖叙,是天一觀的道長氓润。 經(jīng)常有香客問我,道長薯鳍,這世上最難降的妖魔是什么咖气? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上崩溪,老公的妹妹穿的比我還像新娘浅役。我一直安慰自己,他們只是感情好伶唯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布觉既。 她就那樣靜靜地躺著,像睡著了一般乳幸。 火紅的嫁衣襯著肌膚如雪奋救。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天反惕,我揣著相機(jī)與錄音,去河邊找鬼演侯。 笑死姿染,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的秒际。 我是一名探鬼主播悬赏,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼娄徊!你這毒婦竟也來了闽颇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤寄锐,失蹤者是張志新(化名)和其女友劉穎兵多,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體橄仆,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剩膘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盆顾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怠褐。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖您宪,靈堂內(nèi)的尸體忽然破棺而出奈懒,到底是詐尸還是另有隱情,我是刑警寧澤宪巨,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布磷杏,位于F島的核電站,受9級特大地震影響捏卓,放射性物質(zhì)發(fā)生泄漏茴丰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贿肩。 院中可真熱鬧峦椰,春花似錦、人聲如沸汰规。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽溜哮。三九已至滔金,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茂嗓,已是汗流浹背餐茵。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留述吸,地道東北人忿族。 一個(gè)月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像蝌矛,于是被迫代替她去往敵國和親道批。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容