mysql中的存储引擎
存储引擎
什么是存储引擎,有什么用?
存储引擎是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中的存储引擎相关推荐
- MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)
MySQL中的存储引擎: 1.存储引擎的概念 2.查看MySQL所支持的存储引擎 3.MySQL中几种常用存储引擎的特点 4.存储引擎之间的相互转化 一.存储引擎 1.存储引擎其实就是如何实现存储数据 ...
- MySQL中引入存储引擎意义是_mysql学习九:存储引擎、存储过程和函数的引入
存储引擎: 存储引擎是mysql特有的,共有7种,常用的有myisam.memory.innodb 查看表的存储引擎: show create table 表名; 修改表的存储引擎: alter ta ...
- MySQL中的存储引擎详解
为了管理方便,人们把连接管理.查询缓存.语法解析.查询优化这些并不涉及真实数据存储的功能划分为MySQL Server的功能,把真实存取数据的功能划分为存储引擎的功能.所以在MySQL Server完 ...
- mysql的常用存储引擎_MySQL常见的三种存储引擎
Ok,我们知道了,引擎就是一个程序的核心组件. 简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式. 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有O ...
- MySQL事务与存储引擎相关设置
MySQL事务与存储引擎 一.事务的ACID特点 1.原子性 2.一致性 3.隔离性 4.持久性 二.事务之间的互相影响 三.事务的四大隔离 四.事务控制语句 示例 1.开启.提交事务 2.事务回滚 ...
- MySql中有哪些存储引擎
什么是存储引擎呢? 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和 ...
- mysql基础之存储引擎
mysql基础之存储引擎 原文:mysql基础之存储引擎 数据库对同样的数据,有着不同的存储方式和管理方式,在mysql中,称为存储引擎 常用的表的引擎 Myisam ,批量插入速度快, 不支持事务, ...
- MySQL常见的存储引擎的区别?
在MySQL中的存储引擎有很多种,可以通过"SHOW ENGINES"语句来查看.比较常见的是InnoDB.MyISAM.MEMORY这三种. 1.InnoDB存储引擎 InnoD ...
- MySQL事务与存储引擎
文章目录 一.MySQL事务 1.事务的概念 2.事务的ACID特点 2.1 原子性(Atomicity) 2.2 一致性(Consistency) 2.3 隔离性(Isolation) 2.4 持久 ...
最新文章
- pointnet 结果可视化_PointNet论文复现及代码详解
- android 单选框 icon,Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解...
- 大部分公司并不需要微服务
- golang websocket conn.close关闭错误_Websockets 与在golang中的应用
- Spark之SparkSQL理论篇
- ByteBufferMessageSet分析
- 《如何搭建小微企业风控模型》第七节 准入规则节选
- 廖雪峰Git教程学习总结
- cisco fabricpath 功能介绍
- 运筹说 第19期 | 线性规划经典例题讲解
- asp站点服务器,ASP网站搭建 ASP服务器搭建 教程
- java输入数字星期,输出英文
- 利用DSRM账号进行权限维持
- Arduino Web Editor网页编辑器入门
- 谈老人机却不是老人机
- Google Earth Engine(GEE) 批量运行和取消task
- 计算机图形学2d作业,计算机图形学作业
- Obsidian Windows同步到iCloud 再到ipad 云盘 我的电脑导航栏无法应用的问题
- 阿德莱德大学语言班成绩为C,阿德莱德大学语言要求(包括雅思、托福、GRE、GMAT)...
- [译]用R语言做挖掘数据《七》
热门文章
- expect和shell脚本自动登录跳板机和使用AppleScript实现自动登录vpn软件
- Angular 图片、条件判断(*ngIf、[ngSwitch]、属性[ngClass]、[ngStyle])
- 【RL从入门到放弃】【一】
- 数学公式输入神器推荐—Mathpix Snip
- (五)JVM成神路之对象内存布局、分配过程、从生至死历程、强弱软虚引用全面剖析
- linux服务器有必要开zram吗,ubuntu 14.04 使用zram
- jQuery中的Ajax
- 我崩溃了!大连java培训机构哪家好
- 09 jQuery事件委托小米购物车
- vs C# 怎么设置窗口属性? 显示没有边框新窗口