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