iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql面试(五)存储引擎类问题
  • 466
分享到

mysql面试(五)存储引擎类问题

mysql面试(五)存储引擎类问题 2020-02-27 19:02:44 466人浏览 绘本
摘要

Mysql常用存储引擎 引擎名称 事务 说明 MYISAM N mysql5.6之前的默认引擎,最常用的非事务型存储引擎 CSV N 以CSV格式存储的非事务型存储引擎 ArcHive N 只运行查询和新增数据不允许修

Mysql常用存储引擎

引擎名称 事务 说明
MYISAM N mysql5.6之前的默认引擎,最常用的非事务型存储引擎
CSV N 以CSV格式存储的非事务型存储引擎
ArcHive N 只运行查询和新增数据不允许修改的非事务型存储引擎
Memory N 是一种易失性非事务型存储引擎
InnoDB Y 最常用事务性存储引擎
NDB Y Mysql集群使用的内存型事务存储引擎

MYISAM

特点

  • 非事务存储引擎
  • 以堆表方式存储
  • 使用表级
  • 支持BTree索引,空间索引,全文索引

使用场景

  • 读操作远远大于写操作
  • 不需要使用事务

CSV

特点

  • 非事务型存储引擎
  • 数据以CSV格式存储
  • 所有列都不能为NULL
  • 不支持索引

使用场景

  • 作为数据交换的中间表使用

Archive

特点

  • 非事务型存储引擎
  • 表数据使用zlib压缩
  • 只支持Insert和Select
  • 只允许在自增ID上建立索引

使用场景

  • 日志和数据采集类应用
  • 数据归档存储

Memory

特点

  • 非事务型存储引擎
  • 数据保存在内存中
  • 所有字段长度固定
  • 支持Btree和Hash索引

使用场景

  • 用于缓存字典映射表
  • 缓存周期性分析数据

InnoDB

特点

  • 事务型存储引擎
  • 数据按主键聚集存储
  • 支持行级锁和mvcC
  • 支持Btree和自适应Hash索引
  • 支持全文和空间索引

使用场景

  • 大多数OLTP场景

NDB

特点

  • 事务型存储引擎
  • 数据保存在内存中
  • 支持行级锁
  • 支持高可用集群
  • 支持Ttree索引

使用场景

  • 需要数据完全同步的高可用场景

什么情况下InnoDB无法在线修改表

操作 语法
加全文索引 CREATE FULTEXT INDEX name ON table(column)
加空间索引 ALTER TABLE geom ADD SPATIAL INDEX(g)
删除主键 ALTER TABLE tb_name DROP PRIMARY KEY
增加自增列 alert table t add column id int auto_increment not null primary key
修改列类型 alter table t change c1 c1 NEW_TYPE
修改字符集 alter table t character set = charset_name

在线DDL存在的问题

  • 有部分语句不支持在线DDL
  • 长时间DDL操作会引起严重主从延迟
  • 无法对DDL操作进行资源限制

如何更安全执行DDL

  • pt-online-shema-change [OPTioNS]DSN

InnoDB如何实现事务

原理

特征 说明
原子性(A) 一个事务的所有操作,或全部成功或全部失败
一致性(C) 事务开始之前和事务结束只会,数据库保持完整性
隔离性(I) 每个读写事务的对象和其他事务的操作对象相互分离,该事务提交前对其他事务都不可见
持久性(D) 事务一旦提交,结果就是永久性,如果宕机也能恢复

实现方式

特征 说明
原子性(A) 回滚日志(Undo log): 用于记录数据修改前的状态
一致性(C) 重作日志(Redo log): 用于记录数据修改后的状态
隔离性(I) 锁:用于资源隔离,分为共享锁和排他锁
持久性(D) 重作日志(Redo log)+回滚日志(Undo log)

INNODB锁

  • 查询需要对资源加共享锁(S)
  • 修改需要对资源加排他锁(X)
排他锁 共享锁
排他锁 不兼容 不兼容
共享锁 不兼容 兼容

欢迎扫描下方二维码,持续关注:

互联网工程师(id:PHPstcn),我们一起学习,一起进步

您可能感兴趣的文档:

--结束END--

本文标题: mysql面试(五)存储引擎类问题

本文链接: https://www.lsjlt.com/news/1934.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 面试官问我Mysql的存储引擎了解多少
    目录一、MySQL体系结构二、存储引擎简介三、存储引擎的使用四、存储引擎特点1、InnoDB2、MyISAM3、MEMORY五、存储引擎选择总结文章部分来源于黑马Mysql视频教程当...
    99+
    2022-11-13
    mysql存储引擎是什么 mysql存储引擎层实现的功能 mysql默认的存储引擎
  • Mysql -存储引擎
    1、存储引擎:是表级别的类型。 2、查看表存储引擎的方法: (1)、mysql> show table status in mydb where name='classes'\G; 1. ...
    99+
    2024-04-02
  • 【MySQL】存储引擎
    文章目录 1. 前言2. MySQL的体系结构3. 存储引擎简介4. InnoDB介绍5. MyISAM介绍6. Memory7. 存储引擎的选择8. 总结 1. 前言 存储引擎是 MySQL 的核心组件之一,负责数据的存储和管...
    99+
    2023-08-16
    mysql 数据库 sql
  • mysql中存储引擎有哪几类
    这篇文章主要介绍mysql中存储引擎有哪几类,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、分类存储引擎主要有:  MyIsam、InnoDB、Memory、Archive、Federated。默认为:I...
    99+
    2023-06-15
  • MySQL的存储引擎
    1、存储引擎概念 • MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎 • 存储引擎是MySQL将数据存储在...
    99+
    2023-09-07
    mysql 数据库 java
  • MySQL—存储引擎(上)
    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易,人间真情 目录 1). 连接层 2). 服务层 ...
    99+
    2023-09-07
    服务器 运维 mysql
  • MySQL表类型 存储引擎 的选择
    目录1、查看当前数据库支出的存储引擎方法1:方法2:2、ENGINE={存储引起类型}  创建表的时候,设置存储引擎3、alter able tablename engin...
    99+
    2024-04-02
  • mysql存储引擎的类型有哪些
    MySQL存储引擎的类型有以下几种: InnoDB:支持事务处理,具有较好的性能和可靠性,适合大型数据库应用。 MyISAM:不支...
    99+
    2024-04-09
    mysql
  • MySQL(7)-mysql索引和存储引擎
         本篇博客讲的是MySQL的索引的功能和使用 , 以及存储引擎的基本简介 一. mysql索引索引的简介和作用索引在MySQL中叫做"键" , 是存储引擎用于快速找到记录的一种数据结构 . 索引对良...
    99+
    2024-04-02
  • 3,mysql的存储引擎
    1,什么是存储引擎,存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新,查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以成为表类型。 在Oracle和SQL Server等数据库中...
    99+
    2023-01-31
    引擎 mysql
  • mysql存储引擎有几种
    小编给大家分享一下mysql存储引擎有几种,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql存储引擎答:常用的主要分为两种...
    99+
    2024-04-02
  • MySQL存储引擎有哪些
    这篇文章给大家分享的是有关MySQL存储引擎有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MySQL有多种存储引擎,每种存储引擎有各自的优缺点,大家可以择优选择使用:MyI...
    99+
    2024-04-02
  • MySQL存储引擎知多少
    MySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的“存储引擎”(storage_engine)呢有时候面试题中也会问道MySQL几种常用的存储引擎的区别。这次就简短侃一下...
    99+
    2024-04-02
  • MySQL 5.5存储引擎介绍
    存储引擎是MySQL组件,用于处理不同类型的表的SQL操作。 InnoDB存储引擎 默认和应用最广泛的存储引擎。支持事务,具有crash-recovery特性;支持行级锁;支持主键和外键。 Inno...
    99+
    2024-04-02
  • MySQL存储引擎是什么
    本篇内容主要讲解“MySQL存储引擎是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL存储引擎是什么”吧!MySQL 存储引擎存储引擎概述数据库最核...
    99+
    2024-04-02
  • mysql有哪些存储引擎
    这篇文章主要介绍了mysql有哪些存储引擎,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。执行如下指令查看所有mysql所有的存储引擎InnoDB...
    99+
    2024-04-02
  • MySql中的存储引擎和索引
    目录一、MySql的逻辑结构二、什么是存储引擎MySQL支持的存储引擎三、操作四、数据库的索引索引的分类五、索引操作一、MySql的逻辑结构 MySQL体系结构分为四层:分别是连接层...
    99+
    2022-11-13
    MySql存储引擎 MySql索引
  • MySQL Memory存储引擎的优势及性能测试
    本篇内容主要讲解“MySQL Memory存储引擎的优势及性能测试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL Memory存储引擎的优势及性能测试...
    99+
    2024-04-02
  • 【MySQL系列】- 常用MySQL存储引擎
    【MySQL系列】- 常用MySQL存储引擎 数据库存储引擎是数据库底层软件组织,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引机制、锁定水平等功能。...
    99+
    2023-09-12
    mysql 数据库 sql
  • 如何将MySQL中的MyISAM存储引擎转换为InnoDB存储引擎?
    要将MyISAM引擎转换为InnoDB,我们可以使用ALTER命令。现在让我们借助引擎MyISAM 创建一个表。 mysql> create table MyISAMToInnoDBDemo -> ( -> id ...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作