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

         MYISMA5.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许可同意任何人对其进行修改和重新分配。

       20084月,一种新的插件版本的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事务支持

不支持事务

无共享存储

表级锁

分布式数据存储支持

索引只能存放在内存中

快速的自动恢复数据

不支持外键

支持数据自动崩溃恢复

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

内存级数据库性能

 

支持BTREEHASH索引

 

行级锁

 

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

 

直接使用专用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博客 ” ,链接:http://blog.itpub.net/25379809/viewspace-703993/,如需转载,请注明出处,否则将追究法律责任。

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

注册时间:2011-08-03

  • 博文量
    5
  • 访问量
    11958