MySQL 有很多存储引擎(也叫数据引擎),所谓的存储引擎是指用于存储、处理和保护数据的核心服务。也就是存储引擎是数据库的底层软件组织。在 MySQL 中可以使用“show engines”来查询数据库的所有存储引擎,如下图所示:
在上述列表中,我们最常用的存储引擎有以下 3 种:
下面我们分别来看。
InnoDB 是 MySQL 5.1 之后默认的存储引擎,它支持事务、支持外键、支持崩溃修复和自增列。如果对业务的完整性要求较高,比如张三给李四转账,需要减张三的钱,同时给李四加钱,这时候只能全部执行成功或全部执行失败,此时可以通过 InnoDB 来控制事务的提交和回滚,从而保证业务的完整性。
优缺点分析
InnoDB 的优势是支持事务、支持外键、支持崩溃修复和自增列;它的缺点是读写效率较差、占用的数据空间较大。
MyISAM 是 MySQL 5.1 之前默认的数据库引擎,读取效率较高,占用数据空间较少,但不支持事务、不支持行级锁、不支持外键等特性。因为不支持行级锁,因此在添加和修改操作时,会执行锁表操作,所以它的写入效率较低。
优缺点分析
MyISAM 引擎保存了单独的索引文件 .myi,且它的索引是直接定位到 OFFSET 的,而 InnoDB 没有单独的物理索引存储文件,且 InnoDB 索引寻址是先定位到块数据,再定位到行数据,所以 MyISAM 的查询效率是比 InnoDB 的查询效率要高。但它不支持事务、不支持外键,所以它的适用场景是读多写少,且对完整性要求不高的业务场景。
内存型数据库引擎,所有的数据都存储在内存中,因此它的读写效率很高,但 MySQL 服务重启之后数据会丢失。它同样不支持事务、不支持外键。MEMORY 支持 Hash 索引或 B 树索引,其中 Hash 索引是基于 key 查询的,因此查询效率特别高,但如果是基于范围查询的效率就比较低了。而前面两种存储引擎是基于 B+ 树的数据结构实现了。
优缺点分析
MEMORY 读写性能很高,但 MySQL 服务重启之后数据会丢失,它不支持事务和外键。适用场景是读写效率要求高,但对数据丢失不敏感的业务场景。
4.查看和设置存储引擎
4.1 查看存储引擎
存储引擎的设置粒度是表级别的,也就是每张表可以设置不同的存储引擎,我们可以使用以下命令来查询某张表的存储引擎:
如下图所示:
4.2 设置存储引擎
在创建一张表的时候设置存储引擎:
修改一张已经存在表的存储引擎:
总结
MySQL 中最常见的存储引擎有:InnoDB、MyISAM 和 MEMORY,其中 InnoDB 是 MySQL 5.1 之后默认的存储引擎,它支持事务、支持外键、支持崩溃修复和自增列,它的特点是稳定(能保证业务的完整性),但数据的读写效率一般;而 MyISAM 的查询效率较高,但不支持事务和外键;MEMORY 的读写效率最高,但因为数据都保存在内存中的,所以 MySQL 服务重启之后数据就会丢失,因此它只适用于数据丢失不敏感的业务场景。
mysql 和innodb的区别

MySQL数据库有多种存储引擎:比如:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE等等,最常见的也就是MyISAM和InnoDB了,下面主要讲解下MyISAM和InnoDB两种mysql数据库存储引擎的区别。 MyISAM引擎是一种非事务性的引擎,提供高速存储和检索,以及全文搜索能力,适合数据仓库等查询频繁的应用。 MyISAM中,一个table实际保存为三个文件,存储表定义,存储数据,存储索引。 MyISAM在所有MySQL配置里被支持,它是默认的存储引擎,除非你配置MySQL默认使用另外一个引擎。 Mysql服务器中的其他非事务性存储引擎(如MyISAM)遵从不同的数据完整性范例,称之为“原子操作”。 按照事务术语,MyISAM表总能高效地工作在AUTOCOMMIT=1模式下。 原子操作通常能提供可比较的完整性以及更好的性能。 与经过优化调整的最快的事务性表相比,它的速度快3~5倍。 由于MySQL服务器支持两种范例,因而你能决定是否利用原子操作的速度更好地服务于你的应用程序,或使用事务特性。 该选择可按表进行。 InnoDB则是一种支持事务的引擎。 给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。 所以的数据存储在一个或者多个数据文件中,支持类似于Oracle的锁机制。 一般在OLTP应用中使用较广泛。 如果没有指定InnoDB配置选项,MySQL将在MySQL数据目录下创建一个名为ibdata1的自动扩展数据文件,以及两个名为ib_Logfile0和ib_logfile1的日志文件。 InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。 这些特色增加了多用户部署和性能。 没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。 InnoDB也支持FOREIGN KEY强制。 在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。 InnoDB是为处理巨大数据量时的最大性能设计。 它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。 InnoDB存储引擎被完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。 InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件。 InnoDB表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。 InnoDB也默认被包括在所有MySQL 5.1二进制分发版里。
贴吧伴侣是什么?有什么用?
贴吧伴侣可以做什么? 贴吧伴侣是一款全功能的网络浏览器,与IE,TT等类似,特点与贴吧紧密结合, 是您享受贴吧之旅的好伙伴 贴吧伴侣3.7 包括但不限于下列功能: ·可以自动的为您在每个帖子后面附带签名图片和文字签名 ·支持多张签名图片或多个文字签名随机贴出 ·强大的转帖复制帖功能,轻松筛选/管理/保存帖子 ·支持伴侣,IE两套收藏夹,并可互相导入 ·可以将您喜欢的页面截屏为图片形式 ·支持自定义发帖与关闭页面的快捷键 ·您可以拥有自己短语集,常用短语想发就发,好的句子想保存就保存 ·支持添加自己喜欢的搜索引擎。自带25个常用搜索引擎 ·支持快速查找,查找结果高亮显示 ·可以快速搜刮图片作为签名或者贴图 ·支持用户快速切换马甲 ·每个用户(马甲)拥有独立的配置 ·友好的操作界面,有丰富的主题界面可供选择 ·支持顶帖用语自动填写 ·支持老板键,可以自定义老板键 ·您可以轻松管理和选择签名 ·支持帖子语言的特效处理 ·您可以发出繁体中文的帖子 ·您可以轻松保存帖子 ·轻松鼠标一点,即保存网页/贴吧 ·完善的历史浏览记录 更多功能请亲自体验`` 这一切都是免费的! 想让自己在贴吧变的与众不同充满个性吗,请从这里开始..... 下载地址:如果还有什么不明白的请到索引越界吧找我
流式实验中二抗荧光标记具体显何种颜色?
流式里二抗的颜色一般就红绿两种,要根据你机器的激发光波长来决定用哪种二抗了
发表评论