存储引擎

什么是存储引擎,有什么用?

存储引擎是mysql中特有的一个术语,其他数据库中没有(oracle中有,但是不叫这个名字)。

实际上存储引擎是一个表存储/组织数据的方式。

不同的存储引擎,表存储数据的方式不同。

怎么给表添加/指定“存储引擎”?

可以在建表的时候给表指定存储引擎。

mysql> show create table t_user;
+--------+---------------------------------------------------------------------------------------------------------------------------------------------------+
| Table  | Create Table                                                                                                                                      |
+--------+---------------------------------------------------------------------------------------------------------------------------------------------------+
| t_user | CREATE TABLE `t_user` (`id` int DEFAULT NULL,`name` varchar(255) NOT NULL,UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 |
+--------+---------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.04 sec)

在建表的时候可以在最后小括号“)”的右边使用。

ENGINE来指定存储引擎。

CHARSET来指定这张表的字符编码方式。

结论:

mysql默认的存储引擎是:InnoDB。

mysql默认的字符编码方式是utf8。

utf8是utf8mb3的别名,即默认就是utf8mb3。今后的mysql版本中,utf8的默认值可能改为utf8mb4(utf8mb4是utf8的超集)。所以,为了避免出现问题,最好在创建数据库时直接指明是utf8mb3还是utf8mb4,不要用utf8这个可能导致歧义的名称。

建表时指定存储引擎,以及字符编码格式

create table t_user(id int primary key,name varchar(255))engine=InnoDB defaule charset=utf8;

怎么查看mysql支持哪些存储引擎?

mysql> show engines \G
*************************** 1. row ***************************Engine: MEMORYSupport: YESComment: Hash based, stored in memory, useful for temporary tables
Transactions: NOXA: NOSavepoints: NO
*************************** 2. row ***************************Engine: MRG_MYISAMSupport: YESComment: Collection of identical MyISAM tables
Transactions: NOXA: NOSavepoints: NO
*************************** 3. row ***************************Engine: CSVSupport: YESComment: CSV storage engine
Transactions: NOXA: NOSavepoints: NO
*************************** 4. row ***************************Engine: FEDERATEDSupport: NOComment: Federated MySQL storage engine
Transactions: NULLXA: NULLSavepoints: NULL
*************************** 5. row ***************************Engine: PERFORMANCE_SCHEMASupport: YESComment: Performance Schema
Transactions: NOXA: NOSavepoints: NO
*************************** 6. row ***************************Engine: MyISAMSupport: YESComment: MyISAM storage engine
Transactions: NOXA: NOSavepoints: NO
*************************** 7. row ***************************Engine: InnoDBSupport: DEFAULTComment: Supports transactions, row-level locking, and foreign keys
Transactions: YESXA: YESSavepoints: YES
*************************** 8. row ***************************Engine: BLACKHOLESupport: YESComment: /dev/null storage engine (anything you write to it disappears)
Transactions: NOXA: NOSavepoints: NO
*************************** 9. row ***************************Engine: ARCHIVESupport: YESComment: Archive storage engine
Transactions: NOXA: NOSavepoints: NO
9 rows in set (0.00 sec)

mysql支持九大存储引擎,版本不同,支持情况不同。

mysql常用存储引擎

  • MyISAM存储引擎

    使用三个文件表示每个表:

    格式文件–存储表结构的定义(mytable.frm)

    数据文件–存储表行的内容(mytable.MYD)

    索引文件–存储表上索引(mytable.MYI)

MyISAM存储引擎特点:

可被转换为压缩,只读表来节省空间。

缺点:不支持事务,安全性低。

  • InnoDB存储引擎

    这是mysql默认的存储引擎

    InnoDB支持事务,支持数据库崩溃后自动恢复机制。

InnoDB存储引擎最主要特点:

非常安全,支持事务(效率不高,并且不能压缩,不能转换为只读,不能很好的节省存储空间)

  • MEMORY存储引擎

    使用MEMORY存储引擎的表,其数据存储在内存中,且行的长度固定。

MEMORY存储引擎特点:

非常快(查询效率最高,不需要和硬盘交互)

缺点:不安全,关机之后数据消失,因为数据和索引都是在内存当中。

mysql中的存储引擎相关推荐

  1. MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)

    MySQL中的存储引擎: 1.存储引擎的概念 2.查看MySQL所支持的存储引擎 3.MySQL中几种常用存储引擎的特点 4.存储引擎之间的相互转化 一.存储引擎 1.存储引擎其实就是如何实现存储数据 ...

  2. MySQL中引入存储引擎意义是_mysql学习九:存储引擎、存储过程和函数的引入

    存储引擎: 存储引擎是mysql特有的,共有7种,常用的有myisam.memory.innodb 查看表的存储引擎: show create table 表名; 修改表的存储引擎: alter ta ...

  3. MySQL中的存储引擎详解

    为了管理方便,人们把连接管理.查询缓存.语法解析.查询优化这些并不涉及真实数据存储的功能划分为MySQL Server的功能,把真实存取数据的功能划分为存储引擎的功能.所以在MySQL Server完 ...

  4. mysql的常用存储引擎_MySQL常见的三种存储引擎

    Ok,我们知道了,引擎就是一个程序的核心组件. 简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式. 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有O ...

  5. MySQL事务与存储引擎相关设置

    MySQL事务与存储引擎 一.事务的ACID特点 1.原子性 2.一致性 3.隔离性 4.持久性 二.事务之间的互相影响 三.事务的四大隔离 四.事务控制语句 示例 1.开启.提交事务 2.事务回滚 ...

  6. MySql中有哪些存储引擎

    什么是存储引擎呢? 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和 ...

  7. mysql基础之存储引擎

    mysql基础之存储引擎 原文:mysql基础之存储引擎 数据库对同样的数据,有着不同的存储方式和管理方式,在mysql中,称为存储引擎 常用的表的引擎 Myisam ,批量插入速度快, 不支持事务, ...

  8. MySQL常见的存储引擎的区别?

    在MySQL中的存储引擎有很多种,可以通过"SHOW ENGINES"语句来查看.比较常见的是InnoDB.MyISAM.MEMORY这三种. 1.InnoDB存储引擎 InnoD ...

  9. MySQL事务与存储引擎

    文章目录 一.MySQL事务 1.事务的概念 2.事务的ACID特点 2.1 原子性(Atomicity) 2.2 一致性(Consistency) 2.3 隔离性(Isolation) 2.4 持久 ...

最新文章

  1. pointnet 结果可视化_PointNet论文复现及代码详解
  2. android 单选框 icon,Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解...
  3. 大部分公司并不需要微服务
  4. golang websocket conn.close关闭错误_Websockets 与在golang中的应用
  5. Spark之SparkSQL理论篇
  6. ByteBufferMessageSet分析
  7. 《如何搭建小微企业风控模型》第七节 准入规则节选
  8. 廖雪峰Git教程学习总结
  9. cisco fabricpath 功能介绍
  10. 运筹说 第19期 | 线性规划经典例题讲解
  11. asp站点服务器,ASP网站搭建 ASP服务器搭建 教程
  12. java输入数字星期,输出英文
  13. 利用DSRM账号进行权限维持
  14. Arduino Web Editor网页编辑器入门
  15. 谈老人机却不是老人机
  16. Google Earth Engine(GEE) 批量运行和取消task
  17. 计算机图形学2d作业,计算机图形学作业
  18. Obsidian Windows同步到iCloud 再到ipad 云盘 我的电脑导航栏无法应用的问题
  19. 阿德莱德大学语言班成绩为C,阿德莱德大学语言要求(包括雅思、托福、GRE、GMAT)...
  20. [译]用R语言做挖掘数据《七》

热门文章

  1. expect和shell脚本自动登录跳板机和使用AppleScript实现自动登录vpn软件
  2. Angular 图片、条件判断(*ngIf、[ngSwitch]、属性[ngClass]、[ngStyle])
  3. 【RL从入门到放弃】【一】
  4. 数学公式输入神器推荐—Mathpix Snip
  5. (五)JVM成神路之对象内存布局、分配过程、从生至死历程、强弱软虚引用全面剖析
  6. linux服务器有必要开zram吗,ubuntu 14.04 使用zram
  7. jQuery中的Ajax
  8. 我崩溃了!大连java培训机构哪家好
  9. 09 jQuery事件委托小米购物车
  10. vs C# 怎么设置窗口属性? 显示没有边框新窗口