麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL存儲引擎基礎(chǔ)知識

2024-07-24 13:15:13
字體:
供稿:網(wǎng)友

在之前的文章中我們說過MySQL事務(wù),現(xiàn)在大家都應(yīng)該知道了MySQL事務(wù)了吧,還記得事務(wù)的ACID原則嗎?不記得的童鞋可以回顧一下《MySQL之事務(wù)初識》,其實(shí)呀,更嚴(yán)謹(jǐn)一點(diǎn)的話,應(yīng)該是MySQL InnoDB存儲引擎,因?yàn)樵贛ySQL中,只有InnoDB存儲引擎才支持事務(wù)。看到此處,有些朋友可能有以下疑問:

存儲引擎是什么?

MySQL中有哪些存儲引擎?

每個存儲引擎有哪些特點(diǎn)以及區(qū)別?

下面,我們帶著這些疑問,依次往下看:

存儲引擎是什么?

通俗一點(diǎn)來說,MySQL是用來保存數(shù)據(jù)的對不對?我們可以把存儲引擎看作是一種存儲文件的方式以及該方式附屬的一整套工具,其中每個存儲文件方式的特點(diǎn)就是該存儲引擎的特點(diǎn)。

例如:Memory存儲引擎將數(shù)據(jù)保存至內(nèi)存中,其優(yōu)點(diǎn)是:讀寫快,但是數(shù)據(jù)不是持久到磁盤中的,非常容易丟失等等。

MySQL中的存儲引擎

在MySQL 5.7版本中,MySQL支持的存儲引擎有:

InnoDB

MyISAM

Memory

CSV

Archive

Blackhole

Merge:

Federated

Example

下面只介紹常用的存儲引擎,其他沒介紹的存儲引擎,有興趣的童鞋,可以自己自行搜索。

InnoDB:支持事務(wù)操作(如 begin, commit,rollback命令),支持行級鎖,行級鎖相對于表鎖,其粒度更細(xì),允許并發(fā)量更大,這里面細(xì)節(jié)還挺多的,下次,我們單獨(dú)寫一篇)支持外鍵引用完整性約束。InnoDB存儲引擎也是MySQL 5.7版本中默認(rèn)的存儲引擎。其缺點(diǎn)是:存儲空間會占用比較大。

MyISAM:該存儲引擎存儲占用的空間相對與InnoDB存儲引擎來說會少很多,但其支持的為表鎖,其并發(fā)性能會低很多,而且不支持事務(wù),通常只應(yīng)用于只讀模式的應(yīng)用。它是MySQL最原始的存儲引擎。

Memory:該存儲引擎最大的特點(diǎn)是,所有數(shù)據(jù)均保存在內(nèi)存中,之前還有個名字叫做 「Heap」。
應(yīng)用場景: 主要存儲一些需要快速訪且非關(guān)鍵數(shù)據(jù),為什么不是關(guān)鍵數(shù)據(jù)呢?就因?yàn)槠渌袛?shù)據(jù)保存在內(nèi)存中,也可以理解為不安全。

CSV:首先先認(rèn)識一下CSV,CSV文件其實(shí)就是用逗號分隔開的文本文件,常用于數(shù)據(jù)轉(zhuǎn)換,該類型平時用的比較少,不支持索引。

Archive:存檔文件,主要用于存儲很少用到的引用文件,

Example:該存儲引擎主要用于展示如何自行編寫一個存儲引擎,一般不會用作生產(chǎn)環(huán)境使用。

如何選擇存儲引擎

大家通過上面的比較應(yīng)該已經(jīng)看出來了,InnoDB存儲引擎是支持事務(wù),支持外鍵并支持行級鎖的。對于需要在線事務(wù)處理的應(yīng)用最合適不過了,我們在選擇存儲引擎時,如果沒有特別的理由,我的建議是選擇InnoDB作為存儲引擎。

1、我們可以在創(chuàng)建table時,指定存儲引擎,如果未指定,則使用默認(rèn)的存儲引擎。

create table t_base_user(oid bigint(20) not null primary key auto_increment comment "",created_at datetime null comment '')engine=innodb

2、(方法一) 顯示該表的存儲引擎

mysql> show table status like "t_base_user" /G;*************************** 1. row ***************************    Name: t_base_user   Engine: InnoDB   Version: 10 Row_format: Dynamic    Rows: 0Avg_row_length: 0 Data_length: 16384Max_data_length: 0Index_length: 0  Data_free: 0Auto_increment: 1 Create_time: 2017-12-17 20:10:24 Update_time: NULL Check_time: NULL  Collation: utf8_unicode_ci  Checksum: NULLCreate_options:    Comment: 1 row in set (0.01 sec)

3、(方法二) 顯示表的存儲引擎信息

mysql> show create table t_base_user/G;*************************** 1. row ***************************  Table: t_base_userCreate Table: CREATE TABLE `t_base_user` (`oid` bigint(20) NOT NULL AUTO_INCREMENT,`created_at` datetime DEFAULT NULL,PRIMARY KEY (`oid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci1 row in set (0.00 sec)

另外需要注意的是: 不建議修改表的存儲引擎,在創(chuàng)建表時,就要需要考慮好,使用什么存儲引擎。

今日命令

命令: show engines;

標(biāo)準(zhǔn)語法:show stroage engines;

其中stroage為可選項(xiàng)。

作用:顯示當(dāng)前MySQL版本支持的存儲引擎。

例子(MySQL版本: 5.7.20):

mysql> show storage engines;+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| Engine       | Support | Comment                            | Transactions | XA  | Savepoints |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| MRG_MYISAM     | YES   | Collection of identical MyISAM tables             | NO      | NO  | NO     || CSV        | YES   | CSV storage engine                       | NO      | NO  | NO     || MyISAM       | YES   | MyISAM storage engine                     | NO      | NO  | NO     || BLACKHOLE     | YES   | /dev/null storage engine (anything you write to it disappears) | NO      | NO  | NO     || MEMORY       | YES   | Hash based, stored in memory, useful for temporary tables   | NO      | NO  | NO     || InnoDB       | DEFAULT | Supports transactions, row-level locking, and foreign keys   | YES     | YES | YES    || ARCHIVE      | YES   | Archive storage engine                     | NO      | NO  | NO     || PERFORMANCE_SCHEMA | YES  | Performance Schema                       | NO      | NO  | NO     || FEDERATED     | NO   | Federated MySQL storage engine                 | NULL     | NULL | NULL    |+--------------------+---------+---------------------------------------------------------------+--------------+------+------------+9 rows in set (0.00 sec)

使用場景:在查看當(dāng)前數(shù)據(jù)庫版本支持的存儲引擎,查看默認(rèn)存儲引擎時非常實(shí)用。

Engine:存儲引擎名稱。

Support: 表示MySQL當(dāng)前服務(wù)器版本是否支持該存儲引擎,YES為支持 NO 為不支持。

Comment:為該存儲引擎的特性,如Innodb

支持事務(wù),行級鎖等。

Transactions:是否支持事務(wù),YES為支持,No為不支持。

XA和Savepoints:這兩個屬性,與事務(wù)相關(guān),當(dāng)Transactions為Yes時,這兩個屬性才有意義,否則均為NO。


注:相關(guān)教程知識閱讀請移步到MYSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲国产一区二区三区 | 成人午夜视屏 | 激情小说激情图片激情电影 | 亚洲伊人色欲综合网 | 全黄性性激高免费视频 | av电影在线免费 | 久久精精品 | 欧美亚洲一级 | 黄视频网站免费 | 成人在线视频免费播放 | 国产精品免费小视频 | 在线成人免费视频 | 亚洲精品无码不卡在线播放he | 99国内精品视频 | av电影在线观看网站 | 黄在线免费 | 手机国产乱子伦精品视频 | 亚洲欧美成aⅴ人在线观看 av免费在线播放 | 91成人亚洲| 久草在线新时代视觉 | 久久91久久久久麻豆精品 | 国产18视频 | 欧美特黄a | 国产亚洲精品视频中文字幕 | 欧美一级性 | 新久草在线视频 | 精品国产一区二区亚洲人成毛片 | av成人在线观看 | 看免费一级毛片 | 黄色成人av在线 | 羞羞视频免费观看网站 | 成人在线网站 | 久久久久免费电影 | 久久国产成人午夜av浪潮 | 久久久久久久久久美女 | 草莓福利视频在线观看 | 国产一区二区三区撒尿在线 | 麻豆视频在线观看免费网站 | 亚洲视频在线免费看 | 亚洲精品wwww | 免费毛片视频 |