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

MySQL之储存引擎和视图

一、储存引擎

基本介绍:

1、MySQL的表类型由储存引擎(Storage Engines)决定,主要包括MyISAM、innoDB、Memory等。

2、MySQL数据表主要支持六种类型,分别是:CSV、Memory、ARCHIVE、MRG_MYISAN、MYISAM、InnoBDB。

3、这六种又分为两类,一类是“事务安全型”,比如:InnoDB;其余属于第二类,称为“非事务安全型”

指令:

查看所有的储存结构:

SHOW ENGINES

主要的存储引擎/表类型特点:

小结:

1、MyISAM不支持事务,也不支持外键,但其访问速度快,对事务完整性没有要求

2、InnoDB储存引擎提供具有提交、回滚、崩溃恢复能力的事务安全。但比起MyISAM储存引擎,InnoDB写的效率差一些并且会占用更多的磁盘空间以保留数据和索引

3、MEMORY储存引擎使用存在内存中的内容来创建表,每个MEMORY表只实际对应一个磁盘文件。MEMORY类型的表访问速度非常快,因为数据是放在内存中的,没有I/O操作,而且默认是使用HASH索引。但是一旦服务关闭[ net stop mysql ],表中的数据就会丢失,表的结构还在。通常这用来储存用户 在线/离线 这种经常变化的数据

操作:

创建MyISAM类型的表:

create table t(id int,'name' varchar(32)) engine myisam

修改储存引擎:

alter table 表名 engine = 储存引擎名称

二、视图

基本概念:

1、视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图能包含列,其数据来自于对应的真实表(基表)

2、视图和基表关系的示意图

基本使用:

1.创建视图
create view 视图名 as <select语句>2.修改视图
alter view 视图名 as <select语句>3.查看创建视图的指令
show create view 视图名4.删除视图
drop view 视图1,视图2查看结构:
desc t_view在视图中创建新的视图create view 视图中视图名 as select no,name from 视图名

视图中的数据变化可以影响基表,基表的数据变化也会影响视图

在视图中创建新的视图,也是指向基表

视图最佳实践​

  1. ​安全​
    一些数据表有着重要的信息。有些字段是保密的,不能让用户直接看到。这时就可以创建一个视图,在这张视图中只保留一部分字段。这样,用户就可以查询自己需要的字段,不能查看保密的字段。

  2. ​性能​
    关系数据库的数据常常会分表存储,使用外键建立这些表之间关系。这时,数据库查询通常会用到连接(JOIN)。这样做不但麻烦,效率相对也比较低。如果建立一个视图,将相关的表和字段组合在一起,就可以避免使用 JOIN 查询数据(通过视图预先封装多表JOIN操作)​​。

  3. ​灵活​
    如果系统中有一张旧的表,这张表由于设计的问题,即将被废弃。然而,很多应用都是基于这张表,不易修改。这时就可以建立一张视图,视图中的数据直接映射到新建的表。这样,就可以少做很多改动,也达到了升级数据表的目的。

http://www.xdnf.cn/news/515359.html

相关文章:

  • 访问共享打印机提示错误0x00000709多种解决方法(支持win10和win11)
  • minicom串口调试助手
  • 顺 序 表:数 据 存 储 的 “ 有 序 阵 地 ”
  • 禾本科植物胚乳的发育
  • 从c++到python
  • 能力验证及大练兵活动第一期
  • Ansible模块——文件属性查看,文件或目录创建和属性修改
  • 外观数列 --- 模拟
  • 【JAVA】HashMap深度剖析:哈希冲突与扩容机制(25)
  • Debezium快照事件监听器系统设计
  • esp32课设记录(一)按键的短按、长按与双击
  • TYUT-企业级开发教程-第三章
  • leetcode hot100刷题日记——1.两数之和
  • 玄机-第一章 应急响应-webshell查杀
  • Neovim 如何安装和配置缩进标识插件 indent-blankline.nvim
  • 在Gitee中配置SSH公钥,建立远程仓库和本地仓库的连接
  • C++编程起步项目
  • java中的Servlet1.x详解
  • 黑马k8s(十一)
  • LeetCode 155. 最小栈:Java 双栈解法详解
  • 【DeepSeek论文精读】11. 洞察 DeepSeek-V3:扩展挑战和对 AI 架构硬件的思考
  • STM32F103_LL库+寄存器学习笔记24 - TIM产生中心PWM波,中心对齐模式1 + PWM模式2(FOC算法专用)
  • AM32电调学习解读五:tenKhzRoutine
  • 第二十八天打卡
  • Linux常用命令44——bzip2压缩或解压缩.bz2文件
  • 【Spring】核心机制:IOC与DI深度解析
  • docker 安装 jenkins
  • 通俗解释Transformer在处理序列问题高效的原因(个人理解)
  • C++几何计算器
  • 【IP101】图像多尺度分析:金字塔结构的原理、构建与高级应用