以下为引用其它人博客中内容,转载太乱,已经找不到原创作者。

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

  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打 开也可以),将大大提高性能。

  对不支持事务的表做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会默认提供多种存储引擎,你可以通过下面的查看:
  看你的mysql现在已提供什么存储引擎:
  mysql> show engines;

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

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

  修改某个表的存储引擎: 可以执行以下命令来切换非事务表到事务(数据不会丢失),innodb表比myisam表更安全:
  ALTER TABLE tablename ENGINE = MyISAM ;

  修改默认存储引擎:
  在windows下修改 在 my.ini下 将
  # The default storage engine that will be used when create new tables when
  default-storage-engine=INNODB
  这句话修改即可
  在mysql配置文件 (linux下为/etc/my.cnf),在mysqld后面增加default-storage-engine=INNODB即可。
  但是如果表建立的时候是MyISAM,要更改整个数据库表的存储引擎,一般要一个表一个表的修改,比较繁琐,可以采用先把数据库导出,得到SQL,把MyISAM修改成INNODB,再导入的方式。

  另外提一下,如果查看mysql 的版本 默认编码

  查看MySQL数据库的默认编码
  1、使用status命令能够显示数据库的相关系信息,示例如下:
  mysql> status;
  ————–
  mysql Ver 14.12 Distrib 5.0.77, for Win32 (ia32)
  Connection id: 1072
  Current database:
  Current user: test@119.119.247.6
  SSL: Not in use
  Using delimiter: ;
  Server version: 5.0.67-log MySQL Community Server (GPL)
  Protocol version: 10
  Connection: www.chinajvm.com via TCP/IP
  Server characterset: gbk
  Db characterset: gbk
  Client characterset: latin1
  Conn. characterset: latin1
  TCP port: 3306
  Uptime: 15 days 2 hours 21 min 37 sec
  2、也可以使用如下命令:
  mysql> show variables like’char%’;
  +————————–+——————————————–+
  | Variable_name | Value |
  +————————–+——————————————–+
  | character_set_client | latin1 |
  | character_set_connection | latin1 |
  | character_set_database | gbk |
  | character_set_filesystem | binary |
  | character_set_results | latin1 |
  | character_set_server | gbk |
  | character_set_system | utf8 |
  | character_sets_dir | /mysql/mastermysql50/share/mysql/charsets/ |
  +————————–+——————————————–+
  8 rows in set (0.03 sec)

转载于:https://www.cnblogs.com/chenkaiadd/archive/2013/04/21/3033964.html

mysql 中的 engine 存储引擎相关推荐

  1. MySQL中常用的存储引擎(MyISAM 和InnoDB)

     数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用存储引擎进行创建.查询.更新和删除数据操作.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以获 ...

  2. MySQL中merge表存储引擎用法

    来源:http://www.linuxidc.com/Linux/2012-08/67797.htm 在Mysql数据库中,Merge表有点类似于视图.mysql的merge引擎类型允许你把许多结构相 ...

  3. mysql 参照完整性规则_MySQL存储引擎你们知道多少?

    MySQL存储引擎技术详解点击观看! MySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的"存储引擎"(storage_engine)呢?有时候面试 ...

  4. Java 培训 MySQL 体系构架、存储引擎和索引结构

    对某项技术进行系统性的学习,始终离不开对该项技术的整体认知.只有领略其全貌,方可将各块知识点更好的串联起来.为了进一步理解和学习 MySQL,我们有必要了解一下 MySQL 的体系构架.存储引擎和索引 ...

  5. mysql 启用myisam_MySQL各存储引擎(INNODB,MyISAM等)的区别及其启动方法

    存储引擎是什么? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能 ...

  6. MySql中启用InnoDB数据引擎的方法

    1.存储引擎是什么? Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术, ...

  7. mysql数据库应用模式与特点_MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述...

    MySQL存储引擎的实际应用以及对MySQL数据库中各主要存储引擎的独特特点的描述: 1.MySQL有多种存储引擎: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(Berk ...

  8. mysql 5.6默认引擎_MySQL5.6中默认的存储引擎是:_学小易找答案

    [简答题]由于用途不同,基准可以分为? [单选题]测得某种新合成的有机酸 pK a 值为 12.35 ,其 K a 值应表示为( ) [多选题]解说词根据被解释的对象可分为____两种. [单选题]M ...

  9. Mysql技术内幕——InnoDB存储引擎

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

最新文章

  1. 如何在同一台电脑开启多个tomcat服务器
  2. 使用和制作patch文件
  3. 起到的C++是中间层的作用
  4. gps天线拆解图片_飞宇稳定器拆解:握杆的手,不怕颤抖
  5. extjs给panel添加滚动条_extjs.treePanel在ie9下滚动条的显示问题-阿里云开发者社区...
  6. ubuntu 下mongodb安装
  7. tensorflow之relu
  8. Controller的激活与URL路由
  9. android无法创建AVD了?
  10. Docker安装Jenkins教程
  11. USB 转 RS-485 / 422 接口转换器
  12. 产品经理面试——简历填写
  13. p6spy oracle,springboot p6spy 打印完整sql
  14. python实现求两个数的最大公因数
  15. MES1.0实现分析 -制造业数字化探讨(1)
  16. 企业管理软件领域的核心竞争力
  17. 蓝牙AOA定位:如何通过AOA角度计算坐标
  18. 解决 openstack-nova-scheduler/conductor 开启失败
  19. cuda operator稀疏矩阵csr相加
  20. 【LeetCode - 702】搜索长度未知的有序数组

热门文章

  1. 风变Python编程13类的学习2
  2. 密码学原理与实践第三版pdf_喜报!Nervos 研究员 Alan 论文被国际密码学顶会欧密会收录...
  3. C++求复数的角度_高考数学一轮复习33,复数,常见类型及解题策略
  4. Leetcode074. 合并区间
  5. 嵌入式系统——曼彻斯特编码
  6. 计算机械效率的公式怎么读,机械效率公式总结
  7. html密码至少输入6位,JS实现六位字符密码输入器功能
  8. RDD partitioner入门详解
  9. AWS codecommit 的学习记录
  10. 比特币现金和ICO 及其他6个加密在泰国获准交易