--------------------------------------------目录-------------------------------------------------

• 一般项目的体系结构 及存储引擎的分类

• MyISAM 存储引擎

• Innodb 存储引擎(推荐)

• CSV 存储引擎

• Archive 存储引擎

• Memory 存储引擎

• Federated 引擎

• 如何选择正确的存储引擎(4个方面进行考虑)

--------------------------------------------

一般项目的体系结构

mysql服务层

存储引擎层

Mysql 使用 插件式存储引擎

都属于存储引擎

        

-------------------------------------------------------------------

MyISAM 存储引擎

frm 是记录结构的, MYD和 MYI 是MyISAM 特有的

  例   

表级锁,对数据进行修改时需要全表加锁。读取时也是需要家共享锁。

对读写操作并发性不是很好,但是只读的话不怎么影响,共享锁不阻塞共享锁

支持全文索引。

支持text,blob,前500个字符的前缀索引。

如果是只读表的话,就是没有修改操作的表, 可以压缩操作。压缩后的表不能进行插入。

什么时候MyISAM

--------------------------------------------------------------------------

Innodb 存储引擎

   支持小事务

frm 是记录表结构的  idb 是存储数据的  。  如果是OFF  ibdata1

frm 文件 。 数据字典   表,列,索引的相关信息

ACID特性  原子性,一致性,隔离性,持久性

实现以上特性。 从做日志 Redo log主要实现持久性, 回滚日志  Undo log

锁的粒度 : 表级锁, 行级锁。

行级锁 :写操作时,锁定资源更少,支持并发更多。

阻塞:一个在等另一个资源的释放,就是阻塞。阻塞是为了并发并正常运行。大量阻塞就会出现问题,性能整体下降。

死锁:两个或两个以上的相互占用了互相等待的资源,产生异常。数据库会自动发现死锁。

---------------------------------------------------------------------------------------------------------------------

CSV 存储引擎

以文件方式存储的,可以查看文件命令直接查看。

CSV适用场景

---------------------------------------------------------------------------------------------------------------

Archive 存储引擎

----------------------------------------------------------------------------

Memory 存储引擎

IO效率高,数据存在内存中,重启mysql 数据会消失,但是结构会保留。

           合适的索引类型对性能影响很重要。

  

----------------------------------------------------------------------------------------------------------

Federated 引擎

----------------------------------------------------------------------------------------------

如何选择正确的存储引擎(4个方面进行考虑)

是否需要事务支持 : Innodb 是目前来说最稳定并且经过验证的存储引擎

如果不需要事务,并且主要是INSERT 和 SELECT 操作 也可以使用MyISAM

          如果只有insert ,select 少的话可以选用Archive(例如日志)

备份的考虑:生产环境中,可以在线热备的存储引擎,只有Innodb 有免费的热备方案。

      mysqldump备份属于逻辑备份,保证数据的一致性所以需要加锁。

崩溃恢复 : myisam 损坏率更高,恢复速度慢

考虑存储特有特性。

除非万不得已,不要使用多种存储引擎。

例如 Innodb 和 Myisam 的混合使用,事务回滚的时候 Innodb回滚,myisam并没有回滚,数据上会有问题。

如果进行热备,Innodb有热备,myisam没有。也会出问题。

转载于:https://www.cnblogs.com/zhaoyang-1989/p/6868655.html

Mysql 存储引擎相关推荐

  1. 浅谈MySQL存储引擎-InnoDBMyISAM

    浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...

  2. mysql存储引擎静态表_MySQL存储引擎(表类型)的选择

    一.MySQL存储引擎概述 MySQL与多数数据库不同的是包含存储引擎这一特性,用户可以根据应用的需要选择合适的存储引擎来使存储和索引数据,以及是否使用事务等.MySQL5.0支持的存储引擎包括MyI ...

  3. mysql 存储引擎 面试_搞定PHP面试 - MySQL基础知识点整理 - 存储引擎

    MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...

  4. 【超简单】MySQL存储引擎的选择与配置

    [超简单]MySQL存储引擎的选择与配置 存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或内存)中.每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力. ...

  5. 第 3 章 MySQL 存储引擎简介

    3.1 MySQL 存储引擎概述 MyISAM存储引擎是MySQL默认的存储引擎,也是目前MySQL使用最为广泛的存储引擎之一.他的前身就是我们在MySQL发展历程中所提到的 ISAM,是ISAM的升 ...

  6. 为什么用B+树做索引MySQL存储引擎简介

    索引的数据结构 为什么不是二叉树,红黑树什么的呢? 首先,一般来说,索引本身也很大,不可能全部存在内存中,因此索引往往以索引文件的方式存在磁盘上.然后一般一个结点一个磁盘块,也就是读一个结点要进行一次 ...

  7. Mysql存储引擎详解(MyISAM与InnoDB的区别)

    Mysql存储引擎详解(MyISAM与InnoDB的区别) 存储引擎     MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平 ...

  8. 第三篇 :Mysql存储引擎、数据导入导出、管理表记录、匹配条件

    一,存储引擎 1,Mysql工作原理 mysql服务 体系结构     管理工具:    命令 连接池:     (空闲进程.内存.CPU) SQL接口:   (客户端与服务器建立连接传递SQL给my ...

  9. 第三篇:Mysql存储引擎

    1,查看mysql的安装 # which mysql /usr/bin/mysql # rpm -qf /var/lib/mysql mysql-community-server-5.7.24-1.e ...

  10. MySQL存储引擎和外键学习

    MYSQL有多种存储引擎, 在创建表的时候我们使用sql语句,Create table tableName () engine=myisam|innodb; 这就指明了存储引擎是myisam还是inn ...

最新文章

  1. RESTful到底是什么玩意??
  2. iOS子构建Debug运行正常Release运行失败,提示证书问题
  3. python小白——进阶之路——day6天---字符串相关相关函数,格式化(format)
  4. oracle 小计 排序,使用SQL实现小计,合计以及排序
  5. com.microsoft.sqlserver.jdbc.SQLServerException: 索引 7 超出范围。
  6. Swift 3.0 on Ubuntu 15.10
  7. SqlServer中dateTime、dateTime2、date、datetimeoffset的区别
  8. “405 – 不允许用于访问此页的 HTTP 谓词。”的解决方案
  9. Mac安装MySQL后,设置初始密码
  10. linux如何查看实时优先级,Linux进程优先级系统——设置实时进程优先级
  11. Windows 下安装 nvm 管理 nodejs 版本
  12. 《算法分析与设计(第5版)》——王晓东 - 学习记录 / 期末复习
  13. 【位操作笔记】位合并 通过掩码
  14. JavaScript系列(1)初体验-弹出HelloWord
  15. C语言里面100UL是什么意思
  16. 使用Socket实现账号密码验证
  17. Java编程题-买苹果
  18. 微信截图不能截微信界面
  19. python批量下载微博贴评论图片
  20. HTTP/HTTPS 请求与防抓包

热门文章

  1. Apache Kylin 是什么?
  2. 欧盟站POPs持久性有机污染物测试报告
  3. 个人作业——A002-185-2515-郑远曦
  4. 账号服务器异常,知乎服务器出现异常:用户账号信息遭泄露
  5. 常见的机器学习数据挖掘知识点之Basis
  6. device-mapper 块级重删(dm dedup) 3代码结构(2)
  7. 日语二级语法汇总(part5/16)
  8. 浅谈幼儿园计算机论文,浅谈幼儿教育的论文
  9. 元宇宙中的手势交互(四)第一款主流VR头显中的手势交互原理剖析(Meta Quest 2)
  10. jsp中用自定义标签实现简单的分页