作为一个java web开发人员,对于mysql数据库掌握到具体比较这两类引擎的差异也蛮拼的,下面就介绍一下我在工作中积累的对这两类引擎的理解。

MyISAM:

    如果不更改mysql配置文件(my.ini)的话,MyISAM是MySQL的默认存储引擎, 每张MyISAM表对应三个本地存储文件:frm 文件存放表格定义;数据文件 MYD (MYData);索引文件 MYI (MYIndex)。MyISAM类型的表更多强调的是性能,它比InnoDB速度快,但不支持事务,也不支持热备份,但我们可以通过直接拷贝它的三个文件(frm,MYD,MYI)到其他库就能实现备件,十分方便。

InnoDB:

    InnoDB是事务型引擎,支持回滚、崩溃恢复能力、多版本并发控制、ACID事务。InnoDB对应的本地存储文件:frm、ibd(索引与数据),在MySQL的Data目录下有一个 ibdata1 文件,其中记录了本地MySQL服务器各个库中所有InnoDB表的被操作记录,比较大,没有这个文件InnoDB表无法正常被查看,而InnoDB表的备件基本上只能用热备份,除非拷贝整个Data目录,否则还原起来都十分困难,MySQL 新版本也在不断地完善热备功能,不过其高效的、支持动态热备的软件都要付费。 我认为对于那些经常要执行update、insert操作,同时数据量比较大、结构比较复杂、操作需谨慎的表还是选择InnoDB。

  

  一般情况下,我都是用的MyISAM引擎,除非一些我觉得有必要在修理过程中用到rollback的表我才会用到InnoDB,不过对于一项目中的一些关于用户信息、产品信息的表还是要用InnoDB,毕竟项目在维护的时候各个数据表都涉及一个增量备份的问题。另外,最近发现新版的MySQL在对字符数较多的字段建索引的时候,InnoDB支持的更好,之前是对单一字段索引的长度最大为 767 字节(数据实际所占长),使用 UTF-8字符集,每一个字符使用 3 字节来存储,在 TEXT 或者 VARCHAR 类型的字段上建立一个超过 255 字符数的前缀索引时就会遇到问题; 而MyISAM索引键最大长度总和不能超过1000,而且不是实际数据长度的总和,而是索引键字段定义长度的总和。

  再就是,在具体给字段定长度、定类型的时候,还是应该去了解一下各种编码格式对中英文字符存储各自需要花费的空间。

  很多人说做后台的到最后比的都是sql功底,想想确实也是,业务代码逻辑不会太复杂,实际开发中大部分代码都是在调用各种接口,然后稍微复杂一点的就是工程的各种配置、发布,后期的话还有对系统的各种性能测试。web应用,核心在于数据,写好sql语句,做好优化是相当重要的。数据库也能为自己解决很多生活中的小问题,比如对excel文档中的大批量数据进行数据提炼,更改等等。

mysql数据库引擎——MyISAM,InnoDB的更多相关文章

  1. 常用mysql数据库引擎——MyISAM和InnoDB区别

    背景: 昨天做项目时,发现使用事务后回滚不了,后来把数据库引擎从MyISAM换成InnoDB后果断好了,如下图: 正文: MyISAM和InnoDB是mysql常用的数据库引擎,他们的区别如下: 数据 ...

  2. mysql 存储引擎 myisam innodb 区别

    虽然MySQL里的存储引擎不只是MyISAM与InnoDB这两个,但常用的就是它俩了.可能有站长并未注意过MySQL的存储引擎,其实存储引擎也是数据库设计里的一大重要点,那么博客系统应该使用哪种存储引 ...

  3. MySQL数据库引擎MyISAM和InnoDB的区别介绍

    MySQL数据库有多种存储引擎:比如:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERATED.ARCHIVE.CSV.BL ...

  4. mysql数据库引擎MyISAM与InnoDB的区别浅说

    mysql的存储引擎包括:MyISAM.InnoDB.BDB.MEMORY.MERGE.EXAMPLE.NDBCluster.ARCHIVE.CSV.BLACKHOLE.FEDERATED等,其中In ...

  5. MySQL数据库引擎MyISAM与InnoDB的区别

    1. 存储结构 MyISAM:每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型..frm文件存储表定义.数据文件的扩展名为.MYD (MYData).索引文件 ...

  6. mysql数据库引擎(InnoDB MyISAM)

    MySQL的默认存储引擎’在5.5版本以前是MYISAM,5.5之后是INNODB. 两种存储引擎的索引结构都是B+树,B+树的详细介绍可参考https://www.cnblogs.com/yange ...

  7. mysql数据库引擎 MyISAM和 InnoDB区别

    1. 存储结构 MyISAM:每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型..frm文件存储表定义.数据文件的扩展名为.MYD (MYData).索引文件 ...

  8. (转)MySQL数据库引擎ISAM MyISAM HEAP InnoDB的区别

    转自:http://blog.csdn.net/nightelve/article/details/16895917 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎 ...

  9. MySQL存储引擎 - Myisam和Innodb

    Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比   MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始 ...

随机推荐

  1. Google自动打印

    浏览器打印功能,有很多小伙伴可能不太清楚,这里我们可以学习一下. 情景:开发一个需要打印小票的项目.(在订单页里,给客户添加一个打印的操作) 1.假设打印机已经连接好了 2.我们这一节用的浏览器是Go ...

  2. OpenCl入门——实现简单卷积

    现在的卷积实现无非是那么几种:直接卷积.im2col+gemm.局部gemm.wingrod.FFT.如果直接卷积的话,其实kernel函数是比较好实现.以下代码参考至<OpenCL Progr ...

  3. java web开发跨域问题

    分布式环境,前后端分离背景下跨域问题 1.1 设置页面document.domain去把2个页面之间的跨域交互统一 一级域名相同的情况下 调用者和页面提供者进行一个协调 页面提供者要在document ...

  4. 命令行工具--LLDP

    目录 命令行工具--LLDP 一.场景引入 二.什么是LLDP? 三.在CentOS上安装LLDP 四.命令详解 五.脚本 命令行工具--LLDP 一.场景引入 有的时候,我们需要知道服务器上联交换机 ...

  5. 制作docker 离线仓库

    目录 制作docker 离线仓库 1.前言 2.步骤 安装docker-distribution 编辑docker-distribution服务的配置,使用yaml进行的配置 启动仓库服务 编辑doc ...

  6. idea自动在文件头中添加作者和创建时间

    设置路径 : File -> Settings -> Editor -> File and Code Templates 定制头模板: /** * @Author: chancy * ...

  7. AJAX—JSON和Django内置序列化

    JSON 什么是JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * J ...

  8. Linux目录结构以及一些常见操作

    本章内容: Linux 目录结构 远程服务器关机及重启时的注意事项 不要在服务器访问高峰运行高负载命令 远程配置防火墙时不要把自己踢出服务器 指定合理的密码规范并定期更新 合理分配权限 定期备份重要数 ...

  9. linux常用的操作命令

    ---恢复内容开始--- 最近换了工作之后,需要管理linux服务器的日常运行和维护,自然linux命令是少不了的,切换目录,vim操作等的简单的操作就不说了,有些时候还需要查看日志和监控服务器启动进 ...

  10. Shell 语法报错记录

    sh: missing ] if 条件语句 “或”多个条件并行时 执行then命令 变量a等于aa且变量b等于bb 或者 变量c等于cc且变量d等于dd 这样的条件成立的话,输出success if ...