MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎介紹及數(shù)據(jù)庫(kù)的操作詳解
MySQL存儲(chǔ)引擎
InnoDB存儲(chǔ)引擎
InnoDB存儲(chǔ)引擎是MySQL常見(jiàn)的的存儲(chǔ)引擎,
- 它給MySQL的表提供了事務(wù)處理、回滾、崩潰修復(fù)和多版本并發(fā)控制等功能;
- 支持列值自動(dòng)增長(zhǎng)(列值不能為空且必須唯一);
- 支持外鍵。
- 缺點(diǎn): 占用的空間相對(duì)較大
MyISAM儲(chǔ)存引擎
MyISAM儲(chǔ)存引擎支持3種不同的存儲(chǔ)格式:靜態(tài)型、動(dòng)態(tài)型和壓縮型。
- 靜態(tài)型:靜態(tài)型是MyISAM的默認(rèn)存儲(chǔ)格式,它的字段是固定長(zhǎng)度;
- 動(dòng)態(tài)型:包含變長(zhǎng)字段,記錄的長(zhǎng)度不是固定的。
MyISAM儲(chǔ)存引擎占用空間小,處理速度快;但不支持事務(wù)的完整性和并發(fā)性。
Memory存儲(chǔ)引擎
Memory存儲(chǔ)引擎使用存儲(chǔ)在內(nèi)存中的內(nèi)容來(lái)創(chuàng)建表,而且數(shù)據(jù)全部存放在內(nèi)存中。
每個(gè)基于Memory存儲(chǔ)引擎的表實(shí)際對(duì)應(yīng)一個(gè)磁盤(pán)文件,該文件名與表名一致,且只存放表的結(jié)構(gòu)。如果重啟或關(guān)機(jī),所有數(shù)據(jù)都會(huì)消失。
Memory存儲(chǔ)引擎默認(rèn)使用哈希索引,也可在創(chuàng)建索引時(shí)指定為B型樹(shù)索引,使用哈希索引的速度比使用B型樹(shù)索引的速度快。
Archive存儲(chǔ)引擎
Archive存儲(chǔ)引擎只支持INSERT和SELECT操作,非常適合存儲(chǔ)歸檔數(shù)據(jù),如日志信息等。
Archive存儲(chǔ)引擎通過(guò)使用zlib算法將數(shù)據(jù)行壓縮后存儲(chǔ),但是它并不知道事務(wù)安全的存儲(chǔ)引擎,它的設(shè)計(jì)目標(biāo)是提供高速的插入和壓縮功能。
功能 | InnoDB | MyISAM | Memory | Archive |
---|---|---|---|---|
存儲(chǔ)限制 | <= 64TB | <=256TB | RAM | None |
支持事務(wù) | 是 | 否 | 否 | 否 |
全文索引 | 否 | 是 | 否 | 否 |
樹(shù)索引 | 是 | 是 | 是 | 否 |
哈希索引 | 否 | 否 | 是 | 否 |
數(shù)據(jù)緩存 | 是 | 否 | N/A | 否 |
外鍵 | 是 | 否 | 否 | 否 |
數(shù)據(jù)庫(kù)的相關(guān)操作
創(chuàng)建數(shù)據(jù)庫(kù)
create database [if not exists] <數(shù)據(jù)庫(kù)名> [[default] charset set <字符集名>] [[default] collate <校對(duì)規(guī)則名>]
- [if not exists]:表示在創(chuàng)建數(shù)據(jù)庫(kù)之前判斷該數(shù)據(jù)庫(kù)是否存在,只有在不存在的數(shù)據(jù)才執(zhí)行創(chuàng)建操作
- [[default] charset set <字符集名>]:表示指定數(shù)據(jù)庫(kù)的字符集。
- [[default] collate <校對(duì)規(guī)則名>]:表示指定字符集的默認(rèn)校對(duì)規(guī)則。
修改數(shù)據(jù)庫(kù)
alter database <數(shù)據(jù)庫(kù)名> { [default] charset set <字符集名> | [default] collate <校對(duì)規(guī)則名> }
使用alter database更改數(shù)據(jù)庫(kù)的全局特性,需提前獲得數(shù)據(jù)庫(kù)的修改權(quán)限。
刪除數(shù)據(jù)庫(kù)
drop database [if exists] <數(shù)據(jù)庫(kù)名>
查看數(shù)據(jù)庫(kù)列表
show databases [like '數(shù)據(jù)庫(kù)名'];
用戶(hù)查看MySQL中當(dāng)前存在的數(shù)據(jù)庫(kù)列表。
[like ‘數(shù)據(jù)庫(kù)名’]:用戶(hù)匹配指定的數(shù)據(jù)庫(kù)名稱(chēng),可以部分匹配也可以完全匹配。
打開(kāi)數(shù)據(jù)庫(kù)
use <數(shù)據(jù)庫(kù)名>
到此這篇關(guān)于MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎介紹及數(shù)據(jù)庫(kù)的操作詳解的文章就介紹到這了,更多相關(guān)MySQL數(shù)據(jù)庫(kù)存儲(chǔ)引擎內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中使用case when 語(yǔ)句實(shí)現(xiàn)多條件查詢(xún)的方法
今天在一個(gè)應(yīng)用中使用到了一個(gè)比較特殊的數(shù)據(jù)查詢(xún)要求。需要的朋友可以參考下。2010-12-12解析MYSQL 數(shù)據(jù)庫(kù)導(dǎo)入SQL 文件出現(xiàn)亂碼的問(wèn)題
本篇文章是對(duì)MYSQL數(shù)據(jù)庫(kù)導(dǎo)入SQL文件出現(xiàn)亂碼的問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06mysql 主從復(fù)制如何跳過(guò)報(bào)錯(cuò)
這篇文章主要介紹了mysql 主從復(fù)制如何跳過(guò)報(bào)錯(cuò),幫助大家更好的理解和使用MySQL 數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2020-10-10MySQL如何設(shè)置動(dòng)態(tài)創(chuàng)建時(shí)間(create_time)和修改時(shí)間(update_time)
本文主要介紹了MySQL如何設(shè)置動(dòng)態(tài)創(chuàng)建時(shí)間(create_time)和修改時(shí)間(update_time),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05MySQL5.6解壓版服務(wù)無(wú)法啟動(dòng)之系統(tǒng)錯(cuò)誤1067問(wèn)題
這篇文章主要介紹了MySQL5.6解壓版服務(wù)無(wú)法啟動(dòng)—系統(tǒng)錯(cuò)誤1067問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecat
安裝mysql的時(shí)候出現(xiàn)TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details),可以參考下面的方法解決2015-08-08批量清除128組節(jié)點(diǎn)db上面過(guò)期的binlog釋放磁盤(pán)空間實(shí)現(xiàn)思路
在 一臺(tái)db跳轉(zhuǎn)機(jī)上面, 寫(xiě)一個(gè)腳本,訪(fǎng)問(wèn)slave,遠(yuǎn)程獲取正在復(fù)制的master上面的binlog位置, 然后再遠(yuǎn)程去purge master上面的binlog2013-06-06