MYSQL中engine=innodb和engine=myisam的区别和用法!

区别

1.myisam类型不支持事务处理等高级处理,而innodb类型支持。

2.myisam类型的表强调的是性能,其执行数度比innodb类型更快,但是不提供事务支持,而innodb提供事务支持已经外部键等高级数据库功能。这 样就可以根据数据表不同的用处是用不同的存储类型。

3.myisam类型的二进制数据文件可以在不同操作系统中迁移。可直接从Windows系统拷贝到linux系统中使用。

4.myisam具有检查和修复表格的大多数工具. myisam表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果执行大量 的SELECT,MyISAM是更好的选择。

5.innodb类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.innodb表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用innodb表,对于支持事物的innodb类型的标,影响速度的主要原因是AUTOCOMMIT默认设置是打开的,而且程序没有显式调用BEGIN 开始事务,导致每插入一条都自动Commit,严重影响了速度。可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打 开也可以),将大大提高性能。

用法

1.创建表时如果不指定type则默认为myisam,不支持事务。
可以用 show create table tablename 命令看表的类型。

2.可以执行以下命令来切换非事务表到事务(数据不会丢失),innodb表比myisam表更安全:
   alter table tablename type=innodb;

3.innodb表不能用repair table命令和myisamchk -r table_name
但可以用check table,以及mysqlcheck [OPTIONS] database [tables]

4. 启动mysql数据库的命令行中添加了以下参数可以使新发布的mysql数据表都默认为使用事务(只影响到create语句)
--default-table-type=InnoDB

测试命令:
use test;
drop table if exists tn;
create table tn (a varchar(10));
show create table tn;

5. 临时改变默认表类型可以用:
set table_type=InnoDB;
show variables like 'table_type';
或:c:/mysql/bin/mysqld-max-nt --standalone --default-table-type=InnoDB

6.对不支持事务的表做start/commit操作没有任何效果,在执行commit前已经提交。
执行一个msyql:
use test;
drop table if exists tn;
create table tn (a varchar(10)) type=myisam;
drop table if exists ty;
create table ty (a varchar(10)) type=innodb;

begin;
insert into tn values('a');
insert into ty values('a');
select * from tn;
select * from ty;
都能看到一条记录

执行另一个mysql:
use test;
select * from tn;
select * from ty;
只有tn能看到一条记录
然后在另一边
commit;
才都能看到记录。

MySQL笔记10:engine=innodb和engine=myisam的区别和用法!相关推荐

  1. mysql中engine=innodb和engine=myisam的区别详解

    最开始用MySQL Administrator建数据库的时候,表缺省是InnoDB类型,也就没有在意.后来用Access2MySQL导数据的时候发现只能导成 MyISAM类型的表,不知道这两种类型有什 ...

  2. mysql中engine是什么意思_mysql中engine=innodb和engine=myisam的区别

    最开始用MySQL Administrator建数据库的时候,表缺省是InnoDB类型,也就没有在意.后来用Access2MySQL导数据的时候发现只能导成 MyISAM类型的表,不知道这两种类型有什 ...

  3. mysql中engine=innodb和engine=myisam的区别

    1/ISAM ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数.因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源.I ...

  4. mysql中engine=innodb和engine=myisam的区别 (转)

    为什么80%的码农都做不了架构师?>>>    原来是MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持. MyISAM类型的表强调的是性能,其执行数度比InnoDB类 ...

  5. mysql engine 和type_type=INNODB和engine=INNODB的区别

    我在网站下载了一份源码,学习中, 发现type=INNODB,这个数据库引擎老实出错,,后来才一查资料才是: 在MYSQL5.5及以后版本中type=InnoDB 由ENGINE=InnoDB 代替. ...

  6. 解决在phpmyadmin中执行sql语句出现的错误:Unknown storage engine 'InnoDB'

    做留言系统时遇到情况                  - - 在phpmyadmin中执行下列语句: CREATE TABLE `message` (   `id` tinyint(1) NOT N ...

  7. MySQL SQLSTATE[42000]: Syntax error or access violation: 1286 Unknown table engine 'InnoDB' 错误的原因及解决

    博客搬家:由于各种原因,我现在的博客将首发于blog.mojijs.com, 可以百度搜索 "姜哥的墨迹技术博客" , 或者 点击这里 本文首发地址 http://blog.moj ...

  8. mysql死锁分析工具show engine innodb status

    参考文章 <记录一次MySQL死锁的分析与解决过程> <mysql之show engine innodb status解读> <把MySQL中的各种锁及其原理都画出来&g ...

  9. mysql 1286错误_通过navicat做myslq数据同步时报[Err] [Dtf] 1286 - Unknown storage engine InnoDB错误...

    一.问题描述 通过navicat进行mysql数据库数据迁移和导出sql脚本时,报出"[Err] [Dtf] 1286 - Unknown storage engine 'InnoDB'.. ...

最新文章

  1. 10条有益的涉世忠告
  2. subprocess.Popen.stdout.readlines()
  3. python3.8安装pygame_Python3.8安装Pygame教程步骤详解
  4. Cache多核之间的一致性MESI
  5. Spring学习笔记之Design of DispatcherServlet
  6. Android Camera 2.0 Api
  7. Spring、SpringMVC和SpringBoot之间的关系
  8. java super.start,java – 在字节码中确定哪里是super()方法调用所有构造函数必须在JVM上执行...
  9. Spring boot 之 动态的获取不同的实现类
  10. mysql的建库建表语句_SQL语句(建库、建表、修改语句)
  11. python处理json文件_python处理json文件
  12. IntelliJ检查给出“无法解析符号”但仍编译代码
  13. 你看,Fastjson 漏洞也太多了吧。。
  14. 如何断开计算机连接的打印机,打印机无线连接断开了怎么办
  15. sublime编辑器 3143 license
  16. idea保存快捷键_windows10下idea快捷键文件
  17. 使用 SharePoint 2007 进行安全性编程(SPUser,SPGroup,SPSiteGroups)
  18. mysql order field_mysql 使用order by filed,locate和instr自定义排序
  19. Linux内核版本主要有,Linux内核版本号主要有几部分组成? 各代表什么含义?
  20. 中文词性标注学习笔记(二)---分词

热门文章

  1. Mysql 生成不重复的随机数字
  2. bzoj 2962 序列操作
  3. 关于ionic的跨域问题
  4. python成长之路——第四天
  5. Android应用中网络请求库Volley的使用
  6. ubuntu配置android开发环境和编译源码遇到的一些问题
  7. WPF中的动画——(五)路径动画
  8. VMware上安装ubuntu 13.04
  9. 无标题窗体的移动及其简单美化
  10. 谈从10亿个数中找出前10万个最大的