mysql5.5的默认存储引擎是innodb,是不是myisam引擎要被淘汰了

来自:裤子    更新日期:早些时候
mysql5.5的默认存储引擎是innodb,是不是myisam引擎要被淘汰了~

MyISAM不会被淘汰,MyISAM和InnoDB两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁。而MyISAM不支持.所以MyISAM往往就容易被人认为只适合在小项目中使用。
  作为使用MySQL的用户角度出发,Innodb和MyISAM都是比较喜欢的,如果数据库平台要达到需求:99.9%的稳定性,方便的扩展性和高可用性来说的话,MyISAM绝对是首选。
  原因如下:
  1、平台上承载的大部分项目是读多写少的项目,而MyISAM的读性能是比Innodb强不少。
  2、MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率就对应提高了不少。能加载更多索引,而Innodb是索引和数据是紧密捆绑的,没有使用压缩从而会造成Innodb比MyISAM体积庞大不小。
  3、经常隔1,2个月就会发生应用开发人员不小心update一个表where写的范围不对,导致这个表没法正常用,这个时候MyISAM随便从当天拷贝的压缩包取出对应表的文件,随便放到一个数据库目录下,然后dump成sql再导回到主库,并把对应的binlog补上。如果是Innodb,恐怕不可能有这么快速度,最小的一个数据库实例的数据量基本都是几十G大小。
  4、从接触的应用逻辑来说,select count(*) 和order by 是最频繁的,大概能占了整个sql总语句的60%以上的操作,而这种操作Innodb其实也是会锁表的,很多人以为Innodb是行级锁,那个只是where对主键是有效,非主键的都会锁全表。
  5、还有就是经常有很多应用部门需要定期某些表的数据,MyISAM的话很方便,只要发对应那表的frm.MYD,MYI的文件,在对应版本的数据库启动就行,而Innodb就需要导出xxx.sql了,因为光给别人文件,受字典数据文件的影响,对方是无法使用的。
  6、如果和MyISAM比insert写操作的话,Innodb还达不到MyISAM的写性能,如果是针对基于索引的update操作,虽然MyISAM可能会逊色Innodb,但是那么高并发的写,从库能否追的上也是一个问题,还不如通过多实例分库分表架构来解决。
  7、如果是用MyISAM的话,merge引擎可以大大加快应用部门的开发速度,只要对这个merge表做一些select count(*)操作,非常适合大项目总量约几亿的rows某一类型(如日志,调查统计)的业务表。

一、不是被淘汰。
1)如果是一些小型的应用或项目,那么MyISAM 会更适合。
2)如果使用一个超大数据量的项目,而且需要事务处理或外键支持,那么直接使用InnoDB方 式。

二、区别总结:
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%”

MyISAM不会被淘汰,MyISAM和InnoDB两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁。而MyISAM不支持.所以MyISAM往往就容易被人认为只适合在小项目中使用。
作为使用MySQL的用户角度出发,Innodb和MyISAM都是比较喜欢的,如果数据库平台要达到需求:99.9%的稳定性,方便的扩展性和高可用性来说的话,MyISAM绝对是首选。
原因如下:
1、平台上承载的大部分项目是读多写少的项目,而MyISAM的读性能是比Innodb强不少。
2、MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率就对应提高了不少。能加载更多索引,而Innodb是索引和数据是紧密捆绑的,没有使用压缩从而会造成Innodb比MyISAM体积庞大不小。
3、经常隔1,2个月就会发生应用开发人员不小心update一个表where写的范围不对,导致这个表没法正常用,这个时候MyISAM随便从当天拷贝的压缩包取出对应表的文件,随便放到一个数据库目录下,然后dump成sql再导回到主库,并把对应的binlog补上。如果是Innodb,恐怕不可能有这么快速度,最小的一个数据库实例的数据量基本都是几十G大小。
4、从接触的应用逻辑来说,select count(*) 和order by 是最频繁的,大概能占了整个sql总语句的60%以上的操作,而这种操作Innodb其实也是会锁表的,很多人以为Innodb是行级锁,那个只是where对主键是有效,非主键的都会锁全表。
5、还有就是经常有很多应用部门需要定期某些表的数据,MyISAM的话很方便,只要发对应那表的frm.MYD,MYI的文件,在对应版本的数据库启动就行,而Innodb就需要导出xxx.sql了,因为光给别人文件,受字典数据文件的影响,对方是无法使用的。
6、如果和MyISAM比insert写操作的话,Innodb还达不到MyISAM的写性能,如果是针对基于索引的update操作,虽然MyISAM可能会逊色Innodb,但是那么高并发的写,从库能否追的上也是一个问题,还不如通过多实例分库分表架构来解决。
7、如果是用MyISAM的话,merge引擎可以大大加快应用部门的开发速度,只要对这个merge表做一些select count(*)操作,非常适合大项目总量约几亿的rows某一类型(如日志,调查统计)的业务表。


mysql5.5的默认存储引擎是innodb,是不是myisam引擎要被淘汰了视频

相关评论:
  • 18089207244mysql5.5的默认存储引擎是innodb,是不是myisam引擎要被淘汰了
    桑仇适1)如果是一些小型的应用或项目,那么MyISAM 会更适合。2)如果使用一个超大数据量的项目,而且需要事务处理或外键支持,那么直接使用InnoDB方 式。二、区别总结:1.InnoDB不支持FULLTEXT类型的索引。2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个...

  • 18089207244mysql5.5及之后版本的默认存储引擎为
    桑仇适MySQL 5.5及之后版本的默认存储引擎是InnoDB。InnoDB引擎提供了事务安全(ACID兼容)和行级锁定功能,同时还有外键约束,这是它相比于MySQL之前的默认存储引擎MyISAM的主要优势。InnoDB旨在处理大量数据的最大性能和并发性,它使用MVCC(多版本并发控制)来提高并发性,并允许您在事务进行时进行无锁读取。Inno...

  • 18089207244mysql5.5的默认存储引擎是innodb,是不是myisam引擎要被淘汰了
    桑仇适原因如下:1、平台上承载的大部分项目是读多写少的项目,而MyISAM的读性能是比Innodb强不少。2、MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率就对应提高了不少。能加载更多索引,而Innodb是索引和数据是紧密捆绑的,没有使用压缩从而会造成Innodb比MyISAM体积庞大不小。3、经常隔1,2...

  • 18089207244如何更改mysql 数据库的存储引擎
    桑仇适mysql 5.5以前默认的引擎是myisam,5.5以后是innodb,引擎可以在创建表的时候指定,如下:Ceate table test (id int,name varchar(10))engine innodb;修改:alter table test type=innodb;如果想设置缺省引擎可以在配置文件的mysqld添加一行:default-storage-engine=INNODB;

  • 18089207244mysql 5.5相对于以前的版本有什么不一样(5.0以后,5.5以前)
    桑仇适1)默认存储引擎更改为InnoDB 2)提高性能和可扩展性 a. 提高了默认线程并发数(innodb_thread_concurrency)b. 后台输入\/输出线程控制(innodb_read_io_threads、innodb_write_io_threads)c. 主线程输入\/输出速率控制(innodb_io_capacity)d. 操作系统内存分配程序使用控制(innodb_use_sys_malloc)e. ...

  • 18089207244mysql5.1与mysql 5.5.25版本的有什么区别
    桑仇适1. 默认存储引擎更改为InnoDB InnoDB作为成熟、高效的事务引擎,目前已经广泛使用,但MySQL5.1之前的版本默认引擎均为MyISAM,此次MySQL5.5终于 做到与时俱进,将默认数据库存储引擎改为InnoDB,并且引进了Innodb plugin 1.0.7。此次更新对数据库的好处是显而易见的:InnoDB的数据恢复时间从过去的一个...

  • 18089207244版本特性对比分析MySQL版本特性对比分析mysql不同
    桑仇适1. InnoDB存储引擎的改进。InnoDB是MySQL的默认存储引擎,这一版本引入了新的InnoDB插入缓冲池。2. 调整服务器参数。这一版本优化了服务器的参数配置,使MySQL性能得到了提升。3. 调整查询性能。该版本的查询性能有了显著的改善。4. 新增分区表。该版本引入了分区表功能,支持水平分割和管理大型数据集。M...

  • 18089207244MySQL版本升级不向下兼容的问题mysql不向下兼容
    桑仇适比如,在MySQL5.5版本及以下版本中,存储引擎InnoDB的默认值是”innodb_flush_method”为”fsync”,在5.6版本中它默认变成了”0″。这意味着如果在升级到新版本时未将innodb_flush_method值手动更改为”fsync”,则原有的InnoDB存储引擎的工作表现将会...

  • 18089207244mysql存储引擎有哪些
    桑仇适三种引擎特点如下:1、InnoDB存储引擎InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),其它存储引擎都是非事务安全表,支持行锁定和外键,MySQL5.5以后默认使用InnoDB存储引擎。InnoDB特点:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求...

  • 18089207244mysql的数据库服务器的默认存储引擎是
    桑仇适对可靠性要求高就是用innodby引擎。MySQL有9种存储引擎,不同的引擎,适合不同的场景,我们最常用的,可能就是InnoDB,应该是从5.5开始,就成为了MySQL的默认存储引擎。InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,InnoDB是默认的MySQL引擎。

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网