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