当前位置: 首页 > news >正文

MySql学习笔记07——存储引擎介绍

存储引擎

Mysql中特有的术语,Oracle中没有。

存储引擎就是一个表存储/组织数据的方式。不同的存储引擎,表存储数据的方式不同。

指定存储引擎

在建表的时候可以在最后小括号的")"的右边使用:
ENGINE来指定存储引擎。
CHARSET来指定这张表的字符编码方式。

mysql默认的存储引擎是:InnoDB
mysql默认的字符编码方式是:utf8

建表时指定存储引擎,以及字符编码方式。create table t_product(id int primary key,name varchar(255))engine=InnoDB default charset=gbk;

通过show create table 表名;就能看到表的存储引擎以及编码方式了

show create table t_product;
+-----------+----------------------------------------------------------------------------------------------------------------------------------------------+
| Table     | Create Table|
+-----------+----------------------------------------------------------------------------------------------------------------------------------------------+
| t_product | CREATE TABLE `t_product` (`id` int NOT NULL,`name` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk |
+-----------+----------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

查看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)

MyISAM

它管理的表具有以下特征:

  • 格式文件——存储表的结构(mytable.frm)

  • 数据文件——存储表中的内容(mytable.MYD)

  • 索引文件——存储表上索引(mytable.MYI):索引是一本书的目录,缩小扫描范围,提高查询效率的一种机制。

对于一张表来说,只要是主键,或者加有unique约束字段的,都会自动创建索引。

MyISAM存储引擎特点:

  • 可被转换为压缩、只读表来节省空间,这是这种存储引擎的优势!!!!

  • 不支持事务机制,安全性较低。

InnoDB

mysql的默认存储引擎。

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

	– 每个 InnoDB 表在数据库目录中以.frm 格式文件表示– InnoDB 表空间 tablespace 被用于存储表的内容(表空间是一个逻辑名称。表空间存储数据+索引。)– 提供一组用来记录事务性活动的日志文件– 用 COMMIT(提交)SAVEPOINTROLLBACK(回滚)支持事务处理– 提供全 ACID 兼容– 在 MySQL 服务器崩溃后提供自动恢复– 多版本(MVCC)和行级锁定– 支持外键及引用的完整性,包括级联删除和更新

MEMORY

使用 MEMORY 存储引擎的表,其数据存储在内存中,且行的长度固定,这两个特点使得 MEMORY 存储引擎非常快。

    – 在数据库目录内,每个表均以.frm 格式的文件表示。– 表数据及索引被存储在内存中。(目的就是快,查询快!)– 表级锁机制。– 不能包含 TEXTBLOB 字段。

这个引擎的优点就是在于查询效率极高,不需要和硬盘交互,但是也极不安全,电脑断电之后,数据就会消失,因为索引和数据都是存在内存中的。

http://www.lryc.cn/news/159597.html

相关文章:

  • Java基础学习笔记-1
  • 以太坊虚拟机
  • 说说BTree和B+Tree
  • 8.1.3 Bit representation and coding - 解读
  • spring 理解
  • 实战SpringMVC之CRUD
  • TCP机制之连接管理(三次握手和四次挥手详解)
  • NLP(3)--GAN
  • 无涯教程-JavaScript - IMLOG2函数
  • SpringBoot复习:(61)拦截器(HandlerInterceptor)的用法
  • 【PyQT5教程】-01入门PyQT5
  • 判断字符串s是否为字符串t的子序列
  • 数据结构之队列的实现(附源码)
  • [A题]2023 年全国大学生数学建模比赛思路、代码更新中.....
  • Tailwind 练手项目
  • SpringMVC_SSM整合
  • 【操作系统】电脑上没有IIS怎么办
  • 【vue】vue项目中批量下载文件并打压缩包
  • Linux中的软件管家——yum
  • 安卓绘制原理概览
  • 接口测试工具开发文档
  • 面试题速记:JavaScript有哪些数据类型,它们的区别是?
  • Spring Cloud面试题
  • 计算机网络自顶向下-web页面请求历程
  • 打造西南交通感知新范式,闪马智能携手首讯科技落地创新中心
  • Android11去掉Settings中的网络和互联网一级菜单
  • 基于Python开发的五子棋小游戏(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
  • JDBC入门到精通-10w总结
  • Linux之查看so/bin依赖(三十一)
  • day-45 代码随想录算法训练营(19)动态规划 part 07