我在网站下载了一份源码,学习中,

发现type=INNODB,这个数据库引擎老实出错,,后来才一查资料才是:

在MYSQL5.5及以后版本中type=InnoDB 由ENGINE=InnoDB 代替。

由于5.5默认的存储引擎就是InnoDB,因此去掉这个属性不会有影响。

INODB和MyISAM有区别;(engine=innodb和engine=myisam)

(转载)

最开始用MySQL Administrator建数据库的时候,表缺省是InnoDB类型,也就没有在意。后来用Access2MySQL导数据的时候发现只能导成 MyISAM类型的表,不知道这两种类型有什么区别,就去查了查。原来是MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。 MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。这 样就可以根据数据表不同的用处是用不同的存储类型。

另外,MyISAM类型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝到linux系统中使用。

修改:

ALTER TABLE tablename ENGINE = MyISAM ;

MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的 顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果执行大量 的SELECT,MyISAM是更好的选择。

InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,

对于支持事物的InnoDB类型的标,影响速度的主要原因是AUTOCOMMIT默认设置是打开的,而且程序没有显式调用BEGIN 开始事务,导致每插入一条都自动Commit,严重影响了速度。可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打 开也可以),将大大提高性能。

===============================================================

1. 4.0以上mysqld都支持事务,包括非max版本。3.23的需要max版本mysqld才能支持事务。

2. 创建表时如果不指定type则默认为myisam,不支持事务。

可以用 show create table tablename 命令看表的类型。

2.1 对不支持事务的表做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;

才都能看到记录。

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

alter table tablename type=innodb;

3.1 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

mysql engine 和type_type=INNODB和engine=INNODB的区别相关推荐

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

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

  2. MySQL笔记10:engine=innodb和engine=myisam的区别和用法!

    MYSQL中engine=innodb和engine=myisam的区别和用法! 区别 1.myisam类型不支持事务处理等高级处理,而innodb类型支持. 2.myisam类型的表强调的是性能,其 ...

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

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

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

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

  5. show engine innodb status和innodb锁监控

    目录 innodb monitor概述 innodb monitor的类型 innodb标准监控-Standard InnoDB Monitor innodb锁监控-InnoDB Lock Monit ...

  6. mysql 5.1默认缓存_mysql的innodb数据库引擎详解

    一.mysql体系结构和存储引擎 1.1.数据库和实例的区别 数据库:物理操作系统或其他形式文件类型的集合.在mysql下数据库文件可以是frm,myd,myi,ibd结尾的文件. 数据库实例:由数据 ...

  7. mysql 5.5 type=innodb_mysql5.5.23TYPE=InnoDB语法错误_MySQL

    bitsCN.com mysql5.5.23 TYPE=InnoDB语法错误 CREATE TABLE IF NOT EXISTS `ad_aXXXX_test_delete` ( `payment` ...

  8. Mysql存储引擎详解(MyISAM与InnoDB的区别)

    Mysql存储引擎详解(MyISAM与InnoDB的区别) 存储引擎     MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平 ...

  9. MySQL查询字段区不区分大小写? innodb的事务与日志的实现方式?binlog的几种日志录入格式以及区别?

    MySQL查询字段区不区分大小写? MySQL innodb的事务与日志的实现方式 MySQL binlog的几种日志录入格式以及区别 MySQL查询字段区不区分大小写? 答案是不区分 如何解决需要区 ...

最新文章

  1. IPMSM弱磁控制策略
  2. 自动混合精度(AMP)介绍与使用【Pytorch】
  3. VALSE Webinar 20-29期 图文并茂, 让视觉与语言相得益彰
  4. 通过思科构造局域网_cisco设备构建典型局域网
  5. Hexo-theme-Fluid Material Design 风格的 Hexo 主题
  6. Java如何封装参数_java规范(一)------方法设计---返回多参数的方法怎么封装
  7. 给网站加上“新年快乐”灯笼源码
  8. python filter函数_第九篇:Python中lambda、filter和map函数
  9. java程序片的三种元素符号是什么_JAVA试题及答案(精致)
  10. 用 FragmentManager 替换时使用 GoogleMaps 崩溃 app
  11. 汇编学习从入门到精通
  12. yytextview多种格式_YYText之图文混排
  13. Python查看图片模式及像素
  14. win10激活工具,用生命推荐
  15. 微信小程序调用百度地图api遇到的小坑之renderReverse参数
  16. centos8修改主机名称
  17. HDLCPPP原理与配置
  18. Android Hierarchy Viewer
  19. 深度学习实战06-循环神经网络(RNN)实现股票预测
  20. 为什么子进程要继承处理器亲缘性?

热门文章

  1. 是否应该扔掉就代码,重写整个软件?
  2. 唯有自己变得强大_只有自己变得强大,才够让你的人生一帆风顺
  3. win python 怎么打开建立一个孤立的进程_python实现在windows服务中新建进程的方法...
  4. raid5 合适 多少块硬盘_分析Linux raid6同步成raid5导致数据丢失的情况
  5. 下拉默认选择_在Excel中制作二级联动下拉菜单,太有用了
  6. 四边形可以分为几类_展台设计搭建可以分为哪几类?
  7. 20000+张纯文字的海报设计,看看他是如何巧妙地编排设计
  8. 电商优秀设计作品展示
  9. js能调用c语言吗,如何从Javascript调用Object-C?
  10. programfilesx86可以移动吗_配置全套的移动洗砂机多少钱?时产200吨可以处理吗?...