mysql5.5—InnoDB 和mysql5.1-myIAM 引擎区别

刚才浏览mysql相关文档的时候,看到InnoDB和MySAM引擎的特点和区别,觉得不错,我先摘录下来。



MyISAM引擎的特点:

1、堆组织表;
2、不支持事务;
3、数据文件和索引文件分开存储;
4、支持全文索引;
5、主键索引和二级索引完全一样都是B+树的数据结构,只有是否唯一的区别
(主键和唯一索引有唯一属性,其他普通索引没有唯一属性。B+树叶子节点存储的都是指向行记录的row pointer);
6、有特殊计数器记录当前记录数;
7、不支持Crash recovery;
8、索引文件很容易损坏;



    InnoDB引擎的特点:

1、索引组织表;
2、支持事务;
3、数据文件和索引文件存储在同一个表空间中;
4、在5.6以前,不支持全文索引;
5、主键和二级索引数据结构一样都是B+树,但叶子节点存储的键值不一样
(主键的叶子节点存储整行数据,因此也称为聚集索引;而二级索引的叶子节点存储的是主键的键值)
5、支持Crash recovery;
6、相同数据量时,InnoDB表空间文件大小约为MyISAM引擎的1.5~2倍;



MyISAM转向InnoDB的注意事项

1、MyISAM的主键索引中,可以在非第一列(非第一个字段)使用自增列,而InnoDB的主键索引中包含自增列时,必须在最前面;这个特性在discuz论坛中,被设计用于“抢楼”功能,因此,若有类似的业务,则无法将该表从MyISAM转成InnoDB,需要自行变通实现(我们则是将其改到Redis中实现);

2、不带条件频繁统计全表总记录数时(SELECT COUNT(*) FROM TAB),InnoDB相对较慢,而MyISAM则飞快;不过,如果是基于索引条件的统计,则二者相差不大;

3、InnoDB在5.6以前不支持全文索引,不过这个相信无所谓,没什么人会在MySQL里直接跑全文索引,尤其是对中文的全文索引(前阵子有开发同学提需求直接被我否了),确实有需要的话,可以采用Sphinx、Lucene等其他方案实现;

4、一次性导入大量数据并且后续还要进行加工处理的,可以先导入到MyISAM引擎表中,经过一通加工处理完后,再导入InnoDB表(我曾经在业务中用此方法提高数据批量导入及处理效率);
5、InnoDB不支持LOAD TABLE FROM MASTER语法(不过应该也很少人使用吧);


MyISAM转成InnoDB可以享受的好处则

1、完整事务特性支持,以及更高的数据并发存取效率,即更高的TPS;

2、数据库实例异常重启后,InnoDB表能自动修复,而且速度相对更快,而MyISAM需要被触发才能修复,且相对耗时可能多4~5倍甚至更多;

3、更高的数据读取性能,因为InnoDB把数据及索引同时缓存在内存中,而MyISAM只缓存了索引;

4、InnoDB支持外键(不过在MySQL中,应该很少人用到外键)

http://imysql.com/

修改my.cnf配置不生效

http://oldboy.blog.51cto.com/2561410/1122867

环境变量

备份数据不成功 -A 的时候指定 了数据库

时间: 2024-12-01 19:29:29

mysql5.5—InnoDB 和mysql5.1-myIAM 引擎区别的相关文章

mysql5.7 innodb数据库备份工具Xtrabackup的安装

mysql5.7 innodb数据库备份工具Xtrabackup的安装     wget mhttps://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.7/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.7-1.el6.x86_64.rpm Mysql5.7需要安装XtraBackup 2.4.1以上版本 官网地址 https://www.percona.com/down

INNODB与MyISAM两种表存储引擎区别

mysql数据库分类为INNODB为MyISAM两种表存储引擎了,两种各有优化在不同类型网站可能选择不同,下面小编为各位介绍mysql更改表引擎INNODB为MyISAM技巧. 常见的mysql表引擎有INNODB和MyISAM,主要的区别是INNODB适合频繁写数据库操作,MyISAM适合读取数据库的情况多一点,如何把表引擎INNODB更改为MyISAM呢? 使用以下mysql sql语句,可以给表设定数据库引擎: ALTER TABLE `wp_posts` ENGINE = MyISAM;

mysql-5.6.x和mysql-5.7.x二进制安装

#!/bin/bash #__Author__:Allen_Jol at 2018-03-21 13:52:13 #Description: install mysql-5.6.39 or mysql-5.7.21 binary for centos 6.x CPUINFO=`cat /proc/cpuinfo | grep -c  processor` DIR="/usr/local/src" MDIR="/usr/local/mysql" DATADIR=&qu

MySQL5.6.25升级MySQL5.7.15

MySQL5.6升级MySQL5.7 环境介绍 Part1:写在最前 提到MySQL升级,网上文章数之不尽,但大多数为老的版本,诸如5.1升级到5.5.5.5升级到5.6,今天给大家介绍下MySQL5.6升级到MySQL5.7版本的方法和注意事项. Part2:升级方法 升级的方法一般有两类: 1.利用mysqldump来直接导出sql文件,导入到新库中,这种方法是最省事儿的,也是最保险的,缺点的话,也显而易见,大库的mysqldump费时费力. 2.直接替换掉mysql的安装目录和my.cnf

InnoDB与MyISAM等存储引擎对比

文章原文:blog.ouyangsihai.cn >> InnoDB与MyISAM等存储引擎对比 InnoDB存储引擎介绍 InnoDB引擎是Mysql的默认的存储引擎,他有很多自己的特性,下面一一列举. 支持事务,InnoDB存储引擎主要就是为了在线事务处理(OLTP)的应用而设计的. 行锁设计,支持外键,非锁定读. 支持多版本的并发控制(MVCC)来获得高并发性. 提供了插入缓冲.二次写.自适应哈希索引.预读等高性能和高可用的功能. 上面这些算是 InnoDB 存储引擎的一些特点了,也是它

[转帖]InnoDB与MyISAM等存储引擎对比

InnoDB与MyISAM等存储引擎对比 https://blog.ouyangsihai.cn/innodb-yu-myisam-deng-cun-chu-yin-qing-dui-bi.html InnoDB存储引擎介绍 InnoDB引擎是Mysql的默认的存储引擎,他有很多自己的特性,下面一一列举. 支持事务,InnoDB存储引擎主要就是为了在线事务处理(OLTP)的应用而设计的. 行锁设计,支持外键,非锁定读. 支持多版本的并发控制(MVCC)来获得高并发性. 提供了插入缓冲.二次写.自

小贝_mysql 常见存储引擎区别

存储引擎区别 简要: 1.存储引擎 2.myisam与innodb区别 一.存储引擎 1.什么是存储引擎 通俗地讲就是存储和管理数据的方式 形象例子: 某处地方的自行车管理员:李某,张某.每天都有很多人来存取自行车.李某的管理方式是: 车主自行存放,李某也不记录对方存的是什么车.取车时则要交管理费.也不检查取的是否是对方自己的车.相反,张某,则在车主存放车时,记录存放人的特征以及对应车的信息.当人来取车时,张某还要小心核对,人与车的特征是否对应. 从上述例子可知: a.从效率的角度来看: 李某比

MySQL5使用Innodb引擎时如何设置数据文件按表存储

在Innodb引擎中,数据库的表可以共享存储空间也可以按表单独存储,共享存储空间虽然看起来简洁干净,但是从管理和运维的角度的看这种方式不可取.首先在同一个MySQL服务器下得不通数据库的表都会被存放于一个文件中,这个文件不会以为数据库某个表或者某些数据的删除二进行收缩,当数据库很多并且插入操作频繁的情况下,共享存储文件会增长的很快很大.如果数据库要做迁移,架构比较简单,但是存储于共享空间的中的数据就不太容易分离出来. 如果使用按表单独存储则可以很好的解决上述问题,遗憾的是MySQL5中使用Inn

mysql5.7——innodb存储引擎总结

一.innodb初探: 1.MySQL日志文件: ①:slow.log 文件会记录慢查询日志,当一条语句执行时间超过在配置参数long_query_time中指定的值时,这条语句就会被记录在这个文件中: ②:error.log 文件会记录一些系统启动或运行时的错误或警告信息,通过配置参数log_error来设置: ③:general.log 文件会记录所有在数据库上执行的语句,经常用来追踪问题,但会影响一点性能,所以一般不会打开,只有在调试的时候会偶尔开启.(如果在QPS很高的情况下,这个文件可