ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 我为什么选择innodb

我为什么选择innodb

原创 Linux操作系统 作者:tangchaoql 时间:2011-08-03 16:16:50 0 删除 编辑

以下分析内容,仅针对MYSQL

以下分析资料,仅本人观点

如有错误或疑问敬请发送到:tc-ql@163.com,非常感谢

 

 

 

这里所提到的存储引擎(STORAGE ENGINE)或数据库,可以理解为不同的表,某种类型的表。

 

 

 

OLTP DATABASE

 

ARCHIVE:

         归档存储引擎,用于存储归档信息,压缩算法将数据压缩下降到20%的原始大小,因此存储大量数据特性最为突出,但是数据只能读取,不能改变(可更新删除和替换)。不支持索引,支持序列,不支持崩溃恢复。

 

适合的应用场景:

1.       小型(GB级的表或1000亿行一下的单表)数据仓库

2.       Web2.0日志应用。

3.       数据审计

 

优点

缺点

没有存储量的限制

不支持事务

存储成本最小的存储引擎

仅支持序列,不支持索引

写入速度最快的基于磁盘的引擎

不支持崩溃恢复

严格保护UPDATE/DELETE操作

不支持在线热备

基于大表的全表查询速度快于MYISAM

不支持外键

行级锁

不支持UPDATE/DELETE操作

MVCC多版本读取支持

不支持内存缓冲技术

 

 

 

Blackhole(除DBA外,无任何用途):

         Blackhole存储引擎接收传入数据,但不保存数据,开启日志状态下会计入日志。主要功能进行数据复制起到安全或者特殊中转作用。不支持事务。

         无任何目的的存储引擎,同时在复制中转架构中也需要慎用。

 

CSV:

         支持读取CSV数据结构的文件,可以使用SQL语言进行分析。日志可以写成CSV结构的,用数据库分析,我就那么干的。

 

Memory:

         内存表,数据完全存储在内存,崩溃或重启数据丢失。很少有实用价值。

 

Merge:

         针对MYISAM,可以将相同MYISAM表结构的表组织成一个单表。这是一个稳定的存储引擎,它不支持事务。只对MYISAM有用。

 

 

MYISAM:

         MYISMA在5.5之前一直是默认存储引擎,快速的装载数据和读取数据,不支持事务和自动灾难恢复。不支持访问频繁,数据库设计中又存在耗时的SQL的设计或场景。

 

适合的应用场景:

1.       Web2.0

2.       小型数据仓库

3.       嵌入式应用

4.       硬件设备

5.       博客

6.       日志

7.       认证系统

 

 

优点

缺点

没有存储限制,依赖于文件系统限制

不支持事务

存储小号低

表级锁

支持BTREE和空间索引,全文索引

不支持崩溃恢复

非常快的写入性能

不支持在线热备

非常快的查询性能

不支持外键

SELECT COUNT(*)最快,永远是0秒

耗时的SQL会阻塞其他SQL

支持前缀索引

 

 

 

IBM DB2I:

         MYSQL DBA都会管理操作DB2,原因就是他们两完全兼容相同的。

         由于IBM 平台昂贵的价格这里无视之。

 

 

 

InnoDB STORAGE ENGINE:

 

       Innodb存储引擎是由INNOBASE开发公司所拥有,目前隶属于甲骨文公司。Innodb存储引擎是用来处理交易型应用的,拥有自动崩溃恢复功能,保持数据的完整性,高并发控制和良好的响应时间。Innodb是完全开源的自由软件,其提供GPL许可同意任何人对其进行修改和重新分配。

       2008年4月,一种新的插件版本的innodb存储引擎正式发布,该版本具有新的数据压缩行的格式和更快的创建索引的能力。

       截止我整理这篇文章为止,mysql版本为5.5.14,其INNODB存储引擎已经支持快速的创建索引,更好的并发机制,这是在5.5之前没有的。

 

适合的应用场景:

1.     Web2.0事务交易应用

2.     电子商务应用

3.     财政金融应用

4.     医疗应用

5.     零售应用

6.     嵌入式事务交易应用

 

已经应用在:

1.     金融证券

2.     电子商务

3.     教育

4.     能源

5.     国防部

6.     医疗

7.     制造业

8.     传播媒体

9.     零售业

10.  技术工业

11.  电信业

12.  旅游业

13.  Web2.0 等

 

优点

缺点

ACID事务支持

在线备份工具增加成本

支持数据自动崩溃恢复

不支持全文索引和空间索引

数据存储限制64TB/表空间

 

支持外键

 

行级锁

 

MVCC多版本读取支持

 

在线热备

 

支持数据缓存

 

支持聚集索引

 

 

 

 

 

分布式数据库:

       Mysql cluster是一种真正的分布式应用数据库,无单点高可用,是为对系统崩溃恢复支持要求极其严格的应用而设计的。无共享存储格式,内存采用同步复制技术,以提供高达99.999%的可用性,数据主要存放在内存中,为查询和数据处理提供快速的反应时间。

 

适合的应用场景:

1.     电信系统

2.     Web2.0

3.     Web session系统

4.     嵌入式事务系统

5.     搜索引擎

6.     贸易和投资管理交互系统

7.     在线游戏

 

已经应用于:

1.     电信行业

2.     互联网

3.     电子商务

4.     贸易投资

5.     零售业

 

优点

缺点

ACID事务支持

不支持事务

无共享存储

表级锁

分布式数据存储支持

索引只能存放在内存中

快速的自动恢复数据

不支持外键

支持数据自动崩溃恢复

不支持全文索引和空间索引

内存级数据库性能

 

支持BTREE和HASH索引

 

行级锁

 

快速的基于主键的查询速度

 

直接使用专用API访问数据性能更高

 

 

 

 

 

以下数据库请勿考虑:

       Maria:这玩意儿是一个未来计划,谢谢,请在未来去使用。

 

 

       PBXT:可选架构只有复制,他的复制设计的不好,复制需要改进,等改进后使用,innodb仍然可替代他。

 

 

Falcon:存储容量限制,支持并发,但最好不好出现并发,并发能力不行。Innodb可以直接替代他。

 

 

Federated:分布式表定义,允许远程表访问MYSQL服务器结构相同的表,类似于oracle DBLINK。目前为止最好不要应用于生产系统,其质量和性能均存在问题。

 

 

Scale:它是迄今为止,相当完美的一个数据库,简单的说与ORACLE RAC一样,支持关系型数据模型的几乎全部理论,并且支持大型WEB应用,拥有强大的云计算能力。至今仍是一个梦想,还在开发测试。并且他不是开源的。

 

 

 

 

 

DATA WAREHOUSE/BI OLAP

 

Calpont:

       它是一个多线程,扩展的,分布式的数据库,专门为分析数据仓库设计。可以部署在单台服务器上火部署在多机的网格体系结构中,使其良好的向外扩展的能力,与能够真正具有运行大规模并行处理(MPP系统)的能力。采用列导向存储架构,大大降低的I/O解析查询。

 

应用于:

1.     数据仓库

2.     历史数据分析报表

 

优点

 

 

 

 

 

 

 

 

 

 

 

 

个人首选,网格计算,多机并行。

 

 

Infobright-brighthouse:

       我其实已经在使用,数据压缩比10:1,也是列式存储,没有上面的数据库好。

       实际上TB级数据他就不是很好了,与传说中的50TB相差甚远。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25379809/viewspace-703993/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2011-08-03

  • 博文量
    5
  • 访问量
    13428