MySQL 数据库 InnoDB 和 MyISAM 数据引擎的差别
InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
MyIASM是IASM表的新版本,有如下扩展:
1. 二进制层次的可移植性。
2. NULL列索引。
3. 对变长行比ISAM表有更少的碎片。
4. 支持大文件。
5. 更好的索引压缩。
6. 更好的键吗统计分布。
7. 更好和更快的auto_increment处理。
以下是一些细节和具体实现的差别:
1.InnoDB不支持FULLTEXT类型的索引。
2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。
另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”
任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。
转载于:https://www.cnblogs.com/frankyou/p/5300980.html
MySQL 数据库 InnoDB 和 MyISAM 数据引擎的差别相关推荐
- centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复...
centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复 有时候我们会碰到这样的业务场景: 1.将大的数据库恢复到本地进行业务测试 ...
- mysql数据库应用模式与特点_MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述...
MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...
- InnoDB和MyISAM存储引擎
本篇文章主要介绍InnoDB和MyISAM存储引擎,以及他们各自应用的场景与优缺点. InnoDB 引擎:具备外键支持功能的事务存储引擎 MySQL从3.23.34a开始就包含InnoDB存储引擎. ...
- 一句话说清聚集索引和非聚集索引以及MySQL的InnoDB和MyISAM
聚集索引和非聚集索引以及MySQL的InnoDB和MyISAM经常遇到有人向我咨询这个问题,其实呢,网上帖子很多,也说的都对,但是呢,看客可不一定是真的理解了.所以今天在这里用最简短的语言让你明白这些 ...
- mysql聚集索引 myisam_一句话说清聚集索引和非聚集索引以及MySQL的InnoDB和MyISAM
版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/21aspnet/article/details/89303988 聚集索引和非聚集索引以及MySQL的 ...
- MySQL数据库—InnoDB行存储格式
目录 一.InnoDB支持的行存储格式 二.Compact记录格式 1.变长字段长度列表 (1)对varchar类型字段长度的存储 (2)对char类型字段长度的存储 2.NULL标志位 3.记录头信 ...
- mysql java datetime_Java向mysql数据库插入datetime类型数据实例(精)
在Mysql数据库中日期跟时间有两种: 1.date类型,date类型也就是我们常见的储存yyyy-MM-dd类型的日期,它不能储存时间,也就是只能储存日期, 2.dateitme就是可以储存日期同时 ...
- php导出数据库的指定表数据,MYSQL教程mysql数据库导出指定表数据的方法
<MYSQL教程mysql数据库导出指定表数据的方法>要点: 本文介绍了MYSQL教程mysql数据库导出指定表数据的方法,希望对您有用.如果有疑问,可以联系我们. 导读:linux下导出 ...
- python亿级mysql数据库导出_Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法...
本文实例讲述了python实现将MySQL数据库表中的数据导出生成csv格式文件的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding:utf- ...
最新文章
- python3 多进程 同步
- Java学习笔记(一)--JDK环境
- php json解析教程,php解析json
- 《Ext JS高级程序设计》节选: 一个结合DataWrite和RowEditor的Grid示例(2)
- k8s1.5.4挂载volume之nfs
- deletion in request load scenario
- 《面向对象程序设计》作业(四)
- VS2015 编译Protobuf
- C# 获取exe、dll中的图标,支持获取256x256分辨率
- oracle查询日志空间大小,ORACLE 管理 日志与空间
- 仿微信在线聊天源码 DuckChat聊天系统PHP采用 PHP 编写的聊天软件,简直就是一个完整的迷你版微信
- 2019蓝桥杯 - 迷宫
- 西安电子科技大学和东北大学计算机,西安电子科技大学和东北大学比较,哪个好,特别是计算机软件方面...
- 酒店管理系统用什么服务器,用勤哲Excel服务器实现酒店管理系统
- 有了ElasticSearch为什么还要用MySQL?-这篇文章告诉你
- 智能优化与机器学习结合算法实现时序数据预测matlab代码清单
- 想要搭建个人博客?我调研了 100 来个 Java 开源博客系统,发现这 5 个最好用!......
- 【示波器专题】示波器的频响方式
- CCLE 2022 第五届中国教育后勤展览会
- 计算机主板上的ide,主板上的IDE是什么?作用?
热门文章
- [MIPS汇编语言]输入输出演示(数组)
- LeetCode:3. Longest Substring Without Repeating Characters
- 第三章:3.5 傅里叶变换
- 创业者具备的五大技能_一个优秀创业者必备的基本素质和技能
- 西华大学计算机组成原理补考卷,浙江大学航空航天学院空天信息技术保研
- akka框架——异步非阻塞高并发处理框架
- 简单的java类与对象的总结
- Output Operations on DStreams
- Python学习笔记--2--面向对象编程
- SparkStreaming运行出现 java.lang.NoClassDefFoundError: org/apache/htrace/Trace 错误