mysql引擎

mysql数据库引擎取决于mysql在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译mysql。在缺省情况下,mysql支持三个引擎:ISAM,MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。下面介绍几种数据库引擎:

ISAM:ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到 数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个不足之处在于,它不支持事物处理,也不能够容错。如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实 时数据,通过其复制特性,MYSQL能够支持这样的备份应用程序。

MYISAM:MyISAM是 mysql的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM中没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MYISAM强调了快速读取操作,这可能就是为什么MySQL受到了WEB开发如此青睐的主要原因:在WEB开发中你所进行的大量数据操作都是读取操作。所以,大多数虚拟主机提供商和INTERNET平台提供商只允许使用MYISAM格式。MyISAM格式的一个重要缺陷就是不能在表损坏后恢复数据。

HEAP: HEAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MYISAM都快,但它所管理的数据是不稳定的,而且在关机之前没有进行保存,那么所有数据都会丢失。在数据行被删除的时候,HEAP也不会浪费大量的空间。HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用。要记住,在用完表格之后就删除表格。

InnoDB:InnoDB数据库引擎是造就Mysql灵活性的技术的直接产品,这项技术就是MYSQL++ API。在使用mysql的时候,你所面对的每一个挑战几乎都源于ISAM和MYISAM数据引擎不支持事物处理也不支持外来键。尽管要比ISAM和MyISAM引擎慢很多,但是InnoDB包括了对事物处理和外来键的支持,这两点都是前两个引擎所没有的。如前所述,如果你的设计需要这些特性中的一者 或者两者,那你就要被迫使用后两个引擎中的一个了。

MySQL 官方对InnoDB是这样解释的:InnoDB给mysql提供的具有提交,回滚和崩溃恢复能力的事物安全存储引擎。InnoDB锁定在行级并且也在select语句提供一个Oracle风格一致的非锁定读,这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。

InnoDB是为处理巨大数据量时的最大性能设计,它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。

InnoDB存储引擎被完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。这与MyISAM表不同,比如在MyISAM表中每个表被存在分离的文件中。InnoDB 表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。

InnoDB默认地被包含在MySQL二进制分发中。Windows Essentials installer使InnoDB成为Windows上MySQL的默认表。

InnoDB被用来在众多需要高性能的大型数据库站点上产生。著名的Internet新闻站点Slashdot.org运行在InnoDB上。 Mytrix, Inc.在InnoDB上存储超过1TB的数据,还有一些其它站点在InnoDB上处理平均每秒800次插入/更新的。

一般来说:

MYISAM 适合:(1)做很多count的计算;(2)插入不频繁,查询非常频繁;(3)没有事物。

InnoDB适合:(1)可靠性要求比较高,或者要求事物;(2)表的更新和查询都相当的频繁,并且表锁定的机会比较大的情况。

一般情况下,mysql会默认提供多种存储引擎,可以通过下面的查看:

(1)看你的mysql现在已提供什么存储引擎:mysql> show engines;

(2)查看你的msql当前默认的存储引擎:mysql> show variables like '%storage_engine%';

(3)你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):mysql>show create table 表名;

转载于:https://www.cnblogs.com/vanl/p/5473658.html

深入浅析mysql引擎相关推荐

  1. 浅析Mysql InnoDB存储引擎事务原理

    浅析Mysql InnoDB存储引擎事务原理 大神:http://blog.csdn.net/tangkund3218/article/details/47904021

  2. MySQL · 引擎分析 · InnoDB行锁分析

    前言 理解InnoDB行锁,分析一条SQL语句会加什么样的行锁,会锁住哪些数据范围对业务SQL设计和分析线上死锁问题都会有很大帮助.对于InnoDB的行锁,已经有多篇月报进行了介绍,这里笔者借鉴前面月 ...

  3. mysql 线程缓存_浅析MySQL内存的使用说明(全局缓存+线程缓存)

    首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分): 复制代码 代码如下: per_thread_buffers=(read_buffer_s ...

  4. using b tree mysql_浅析MysQL B-Tree 索引

    B-Tree 索引 不同的存储引擎也可能使用不同的存储结构,i如,NDB集群存储引擎内部实现使用了T-Tree结构存储这种索引,即使其名字是BTREE:InnoDB使用的是B+Tree. B-Tree ...

  5. 架构周报| 浅析MySQL JDBC连接配置上的两个误区

    经典案例 \\ 浅析MySQL JDBC连接配置上的两个误区:相信使用MySQL的同学都配置过它的JDBC驱动,多数人会直接从哪里贴一段URL过来,然后稍作修改就上去了,对应的连接池配置也是一样的,很 ...

  6. MySQL引擎特性GIS-R-TREE

    MySQL引擎特性GIS-R-TREE Geohash用于代表位置的经纬度编码成一个字符串,支持WGS 84 Coordinate System MySQL支持的空间数据类型包括GEOMETRY,PO ...

  7. 添加mysql引擎错误

    在添加mysql引擎时,可能出现如下错误: Can't open shared library '/usr/local/mysql/lib/mysql/plugin/ha_innodb.so' (er ...

  8. MySQL · 引擎特性 · InnoDB 崩溃恢复过程

    在前面两期月报中,我们详细介绍了 InnoDB redo log 和 undo log 的相关知识,本文将介绍 InnoDB 在崩溃恢复时的主要流程. 本文代码分析基于 MySQL 5.7.7-RC ...

  9. 15_clickhouse,MySQL引擎;MySQL和ClickHouse中数据类型的对应关系

    20.MySQL引擎 20.1.MySQL引擎 20.2.MySQL和ClickHouse中数据类型的对应关系 20.3.示例 20.MySQL引擎 20.1.MySQL引擎 MySQL引擎可实现对M ...

最新文章

  1. QIIME 2教程. 20实用程序Utilities(2020.11)
  2. .net 考试系统人一多就断开了_2020年银行从业资格考试成绩查询入口已开放
  3. docker可视化管理界面_分析一款Docker容器可视化管理工具Porttainer
  4. D - Yet Another Problem On a Subsequence CodeForces - 1000D (DP,组合数学)
  5. WebStorm使用教程
  6. 'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件
  7. MySQL空闲会话_使用Oracle PROFILE控制会话空闲时间
  8. php中动态变量数组,php – 将数组提取到动态变量中
  9. RFID技术为智能轮胎在未来车联网领域的应用奠定了基础
  10. 阿里云loT物联网学习
  11. Datawhale组队学习周报(第045周)
  12. 示例代码-协方差,黎曼协方差计算.
  13. 上海航芯|推出基于ACX200T的V2X解决方案
  14. 阿里大数据面试题集合:Hadoop+HBase+Spark+Zookeeper
  15. mysql .myd_关于mysql 删除数据后(.MYD,MYI)物理空间未释放
  16. 硕士论文重复率太高了怎么办
  17. MOSFET的SOA
  18. h5 div自动排列
  19. 线性代数(一)-行列式
  20. 使用 PhpStorm 来开发和 Debug Laravel Sail 项目

热门文章

  1. Eclipse创建的Maven项目报错Could not calculate build plan: Plugin
  2. Memcached的定义及用法
  3. 计算机加电后操作系统启动过程
  4. 突破:量子计算机首次实现简化逻辑门
  5. 第0周---python网络爬虫前奏
  6. 【机器学习实战】第12章 使用 FP-growth 算法来高效发现频繁项集
  7. 【LeetCode】two num 利用comparable接口 对对象进行排序
  8. 不使用递归求全排列和组合数
  9. 全球顶级专家为你解读:什么是真正的 DevOps?
  10. 基础知识--:before伪元素和:after伪元素