欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySql存儲引擎的作用

 更新時間:2022年09月16日 17:05:03   作者:在人間負債^  
mysql面試中最常問的問題之一:小伙子,你說一下你們公司用的存儲引擎,以及你知道有哪些存儲引擎和他們之間的區(qū)別? 所以下面這篇文章主要給大家介紹了關于Mysql存儲引擎的相關資料,需要的朋友可以參考下

1. 存儲引擎是什么

存儲引擎是 MySql 中特有的一個術語,其它數據庫中沒有。

實際上存儲引擎是一個表存儲/組織數據的方式。

不同的存儲引擎,表存儲數據的方式不同。

2. 如何給表添加指定存儲引擎

mysql> show create table t_student;
| t_student | CREATE TABLE `t_student` (
  `no` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `cno` int DEFAULT NULL,
  PRIMARY KEY (`no`),
  KEY `cno` (`cno`),
  CONSTRAINT `t_student_ibfk_1` FOREIGN KEY (`cno`) REFERENCES `t_class` (`classno`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |

在建表的時候可以在最后小括號的 “)” 的右邊使用:

ENGINE 來指定存儲引擎

CHARSET 來指定這張表的字符編碼方式

mysql 的默認存儲引擎是:InnoDB

mysql 的默認的字符編碼方式是:utf8

mysql> create table t_product (id int primary key, name varchar(255))engine=InnoDB default charset=utf8;

3. mysql支持那些存儲引擎

mysql> show engines \g

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

mysql 支持九大存儲引擎

mysql 的版本不同,支持的引擎情況不同

4. mysql常用存儲引擎的介紹

1. MyISAM存儲引擎

特征:

使用三個文件表示每個表

  • 格式文件 - 存儲表結構的定義(mytable.frm)
  • 數據文件 - 存儲表行的內容(mytable.MYD)
  • 索引文件 - 存儲表上索引(mytable.MYI):索引是一本書的目錄,可以縮小掃描范圍,提供查詢效率。

優(yōu)點:

由于表由三個文件來存儲因此可以被壓縮、只讀來存儲空間

缺點:

不支持事務,安全性低

對于一張表來說,如果添加 unique 約束,在被約束的字段上就會自動創(chuàng)建索引

2. InnoDB存儲引擎

InnoDB 是 mysql 默認的存儲引擎,同時也是一個重量級的存儲引擎。

InnoDB 支持事務,支持數據庫崩潰后自動恢復機制。

InnoDB 存儲引擎最主要的特點是:非常安全?。。?/p>

特征:

  • 每個 InnoDB 表在數據庫目錄中以.frm 格式文件表示
  • InnoDB 表空間 tablespace 被用于存儲表的內容
  • 提供一組用來記錄事務性活動的日志文件
  • 用 COMMIT(提交)、SAVEPOINT 及 ROLLBACK(回滾)支持事務處理
  • 提供全 ACID 兼容
  • 在 MySQL 服務器崩潰后提供自動恢復
  • 多版本(MVCC)和行級鎖定
  • 支持外鍵及引用的完整性,包括級聯(lián)刪除和更新

3. MEMORY存儲引擎

使用 MEMORY 存儲引擎的表,其數據在內存中,且行的長度固定。

這兩個特點使得 MEMORY 存儲引擎非??欤。。?/p>

特征:

  • 在數據庫目錄內,每個表均以.frm 格式的文件表示。
  • 表數據及索引被存儲在內存中。
  • 表級鎖機制。
  • 不能包含 TEXT 或 BLOB 字段。

MEMORY 存儲引擎以前被稱為 HEAP 引擎。

優(yōu)點:

查詢效率最高?。?!不需要和硬盤交互。

缺點:

不安全,關機之后數據消失,因為數據和索引都是在內存當中。

到此這篇關于MySql存儲引擎的作用的文章就介紹到這了,更多相關MySql存儲引擎內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Mysql中存儲UUID去除橫線的方法

    Mysql中存儲UUID去除橫線的方法

    這篇文章主要介紹了Mysql中存儲UUID去除橫線的方法,本文給出了3個Mysql函數實現(xiàn)去除去UUID中的橫線,需要的朋友可以參考下
    2015-02-02
  • mysql去重查詢的三種方法小結

    mysql去重查詢的三種方法小結

    本文主要介紹了mysql去重查詢的三種方法小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • mysql-5.7.42升級到mysql-8.2.0(二進制方式)

    mysql-5.7.42升級到mysql-8.2.0(二進制方式)

    隨著數據量的增長和業(yè)務需求的變更,我們可能需要升級MySQL,本文主要介紹了mysql-5.7.42升級到mysql-8.2.0(二進制方式),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • mysql 8.0.13手動安裝教程

    mysql 8.0.13手動安裝教程

    這篇文章主要為大家詳細介紹了mysql 8.0.13手動安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 深度分析mysql GROUP BY 與 ORDER BY

    深度分析mysql GROUP BY 與 ORDER BY

    鑒于項目的需要,就從網上找到該文章,文章分析得很詳細也很易懂,在android里,(不知道是不是現(xiàn)在水平的限制,總之我還沒找到在用ContentProvider時可以使用子查詢),主要方法是用SQLiteDatabase 的 rawQuery,直接運行sql語句就可以了。
    2014-06-06
  • 如何優(yōu)雅、安全的關閉MySQL進程

    如何優(yōu)雅、安全的關閉MySQL進程

    這篇文章主要介紹了如何優(yōu)雅、安全的關閉MySQL進程,幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下
    2020-08-08
  • MySQL 數據丟失排查案例

    MySQL 數據丟失排查案例

    這篇文章主要分享了MySQL 數據丟失排查的一個案例,幫助大家更好的理解和學習使用MySQL數據庫,感興趣的朋友可以了解下
    2021-05-05
  • MySQL?數據持久化過程講解

    MySQL?數據持久化過程講解

    這篇文章主要介紹了MySQL?數據持久化過程講解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,?需要的朋友可以參考一下,希望對你的學習有所幫助
    2022-07-07
  • Mac?Homebrew安裝的MySQL無法遠程登錄的解決

    Mac?Homebrew安裝的MySQL無法遠程登錄的解決

    這篇文章主要介紹了Mac?Homebrew安裝的MySQL無法遠程登錄的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • MySQL中的insert ignore into使用

    MySQL中的insert ignore into使用

    這篇文章主要介紹了MySQL中的insert ignore into使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論