- 浏览: 86173 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
songfantasy:
不错,学习了
java与c/c++之间的数据交互-----jni点滴 -
wen0301:
有时间,读读看,并且看看花多长时间。
为了练好口语,你敢不敢每天读一遍,坚持一个月? -
wen0301:
加一些 代码,效果会更好。。。
设计模式:简单工厂、工厂方法、抽象工厂之小结与区别 -
wen0301:
能加一些实际代码 效果会更好吧~~
设计模式:简单工厂、工厂方法、抽象工厂之小结与区别 -
lijiancool:
每天一遍,都不要做其他事情了,哦滴神呀。。。。
为了练好口语,你敢不敢每天读一遍,坚持一个月?
在MySQL经历了2008年Sun的收购和2009年Oracle收购Sun的过程中,基本处于停滞发展的情况,在可以预见的未来,MySQL是肯定会被Oracle搁置并且逐步雪藏消灭掉的。MySQL随着相应的各主创和内部开发人员的离去,缔造了各个不同的引擎和分支,让MySQL有希望继续发扬光大起来。 本文大致讲解一下MySQL目前除了主要的 MyISAM、InnoDB、Heap(Memory)、NDB 等引擎之外的其他引擎的发展和现状,以及MySQL主干以外的分支的状况,为了我们未来更好的使用MySQL或者其他分支建立一个了解基础。 要了解主要存储引擎,请参考手册:http://dev.mysql.com/doc/refman/5.1/zh/index.html
【MySQL存储引擎介绍】 [ Falcon存储引擎 ] Falcon引擎是MySQL AB公司基于Netfrastrucure公司的产品开发的(Netfrastrucure公司被MySQL AB收购),Falcon 当初的目标是嵌入到MySQL 6.0中用来取代InnoDB引擎,基本很多功能设计都是按照InnoDB的目标去设计的。 Falcon是面向多CPU、拥有大量内存的当代硬件环境和典型Web应用的 数据库操作特点而开发的,主要功能包括多版本并发控制、完善的ACID支持、支持前缀压缩的B+树索引、数据页压缩(在磁盘上以压缩形式存储,在内存中以 非压缩形式存储)、成组提交等。从功能方面来说没有什么新鲜事,大体也就实现了一个事务型存储引擎必须要有的功能(很多高级的功能如多表空间、分区等都还 没有),但其架构上却有很多独特之处。 通过网上的一些测试结果Falcon的性能还是很糟糕的,写入速度是 MyISAM 的 1/10 ~ 1/20,Select 的优化也有问题,添加了索引感觉还会进行全表扫描。所以,我终究感觉 Falcon 是个杯具的引擎。 Falcon特性:http://dev.mysql.com/doc/falcon/en/se-falcon-features.html
Falcon存储引擎是MySQL当时寄以厚望的存储引擎,主要是为了面对当时Oracle收购了InnoBase公司的情况,用来取代InnoDB的一个存储引擎。Falcon引擎的主导人员是大师Jim Starkey,从2006年开始开发,到2008年发布Beta版本,至今为止也没有走入主流。2008年中旬,Falcon的主架构师Jim Starkey宣布从MySQL公司辞职,加入了一家创业公司NimbusDB担任CEO,去设计和开发运行在云计算上面的关系/语义数据库,按照2010年目前NoSQL市场的发展来看,他的选择是正确的,但是带来的结果是Falcon陷入一个没有主导人员的地步,导致了至今都属于性能糟糕,半死不活的状态。
Falcon测试:http://blog.gslin.org/archives/2008/02/12/1425/
Falcon手册:http://dev.mysql.com/doc/falcon/en/
[ SolidDB存储引擎]
solidDB存储引擎是由Solid Information Technology(http://www.soliddb.com) 开发的,这是一款利用MVCC来实现的事务型存储引擎。它既同时支持悲观和乐观并发控制,这一点其他的存储引擎目前都不支持。solibDB的MySQL 版本包括对外键的完全支持。它在许多方面与InnoDB很相似,比如它使用了簇索引。solidDB还包括一个没有额外开销的在线备份功能。
solidDB公司已经由2008年被IBM收购,主要是用于整合为IBM数据库整合方案的一部分,目前是作为一个前端数据缓存的这么一个角色存在。IBM收购solidDB公司,主要是因为甲骨文在2005年6月收购了Solid Information Technology主要竞争对手TimesTen,为了在内存数据库这块市场上有所依托,所以收购了 solidDB公司。
solidDB产品是一个完整的打包程序,包括solidDB存储引擎、MyISAM存储引擎以及MySQL服务器。solidDB与MySQL之间的结合出现于2006年的晚些时候。但是底层的技术以及代码却是经过了该公司15年的完善。Solid公司保证和支持了整个产品。它是基于GPL协议的,并且提供了一个类似于MySQL服务器形式的商业版本。
性能上来说,SolidDB for MySQL开源数据库再次被证明能够完全满足高吞吐量、关键任务级应用对系统性能和可扩展性的要求。
但是就 solidDB被IBM收购,MySQL对Oracle收购的情况来看,基本上 solidDB for MySQL 是一个没法继续被MySQL使用的引擎,所以也是一个杯具的MySQL引擎。
官方网站:http://www.ibm.com/software/data/soliddb/
[ XtraDB存储引擎 ]
XtraDB存储引擎是percona公司对于innodb存储引擎进行改进加强后的产品,第一个版本发布于2008年底。XtraDB兼容innodb的所有特性,并且在IO性能,锁性能,内存管理等多个方面进行了增强。
Percona是一个MySQL技术咨询公司,他们有一个在MySQL领域很有名的技术博客叫做 Mysql Performance Blog,同时他们编写了一本很有名的MySQL书叫做《High Performance MySQL》,目前也出版了中文版。他们公司还有一个很有名的MySQL备份工具叫做 XtraBackup。
XtraDB的设计目标也是取代InnoDB作为目标,它是基于InnoDB来做的开发,XtraDB 100%的兼容 InnoDB,通常可以认为 XtraDB 是 InnoDB的升级或者替代版本。在性能上来说,目前 XtraDB 是非常高的,在大部分情况下也是比较稳定的,值得你尝试使用。同样XtraDB也是未来感觉很有前途的一个存储引擎,值得我们期待。
性能测试:http://www.mysqlperformanceblog.com/2009/07/14/performance-improvements-in-percona-5-0-83-and-xtradb/
使用情况:http://www.ningoo.net/html/2009/xtradb_storage_engine.html
引擎介绍:http://www.percona.com/docs/wiki/percona-xtradb:start
引擎下载:http://www.percona.com/percona-builds/Percona-XtraDB/
公司官网:http://www.percona.com
性能博客:http://www.mysqlperformanceblog.com
[ Maria存储引擎 ]
Maria由MySQL的创始人,MyISAM的作者Monty (Michael Widenius) 开发,命名为Maria是因为他的第三个小孩就叫Maria。Maria是Monty在MySQL公司的时候就开始开发的一个MySQL的分支引 擎,Sun收购MySQL后,因为与Sun针对MySQL团队的一些问题不和,然后在2009年初离开了Sun,成立了 Monty Program Ab 公司,专门用于针对 Maria 引擎的开发,同时开发了一个MySQL的分支,叫做 MariaDB。
Maria是一个MySQL的存储引擎,利用它来扩展MyISAM使之在异常退出时文件不至于损坏。Maria的主要目的是作为更好的 MyISAM,提供崩溃后的故障恢复功能。更长远的目标是成为一个全功能的事务型存储引擎,支持ACID、回滚、多版本并发控制、行级锁、成组提交,同时 也可以选择不支持事务,最终代替MyISAM成为MySQL的默认存储引擎。
目前Maria引擎有针对MySQL 5.1 的版本,基本上就是一个增加了崩溃恢复功能的MyISAM,使用表级锁,但可以做到读写不冲突,即在进行任何类型的更新操作的同时都可以进行读操作,但多个写操作不能并发。
Maria的特点:
1. 多版本并发控制,ACID支持
2. 通过拷贝日志就能进行增强备份
3. 高效的磁盘存储
Maria 引擎开发之初就是用来取代MyISAM的存储引擎,并且目前按照我了解有些在使用公司的情况,运行情况挺不错,大家也可以尝试一下。Maria 在目前有MySQL创始人带领的情况下,也是一个非常有前途的的存储引擎,值得期待。
Maria下载:http://askmonty.org/wiki/MariaDB:Download
Maria手册:http://askmonty.org/wiki/Maria
[PrimeBase XT (PBXT) 存储引擎 ]
PBXT 是 PrimeBase 公司推出的MySQL插件引擎,其功能和 InnoDB 类似,它是一款事务型存储引擎,并且它的设计是很独特的。它的一个很与众不同的特征就是如何来使用事务日志和数据文件来防止“write-ahead”日 志,这可以极大的减少事务提交的开销。这个架构给了PBXT很大的提高写并发的空间,并且测试也表明它在某些特定的操作下比InnoDB要快。PBXT也 使用了MVCC并且支持外键约束,但是它不使用簇索引。
主要特性如下:
MVCC的 :多版本并发控制,使读操作没有锁定
事务性 :支持启动开始,COMMIT和ROLLBACK和恢复上
ACID标准 :原子性,一致性,隔离,持久(一次提交的更改不能丢失)
行级锁定 :更新使用行级锁的并发允许最大并发量
死锁检测 :立即通知如果客户端进程已陷入死锁
参照完整性 :外键的支持。
写一次 :PBXT避免的架构双写入使用日志。
BLOB的流 :在结合的 BLOB Streaming engine.。 (http://www.blobstreaming.org/)
按照有人的测试结果来看,PBXT存储引擎版本的TPS随着线程数的增长,表现比较稳定,性能上与innodb差不多,长期来看,它的目标也是作为 一个能够取代InnoDB的存储引擎。而且目前 MariaDB 这个分支已经把 PBXT 作为内置的存储引擎,所以也是可以尝试使用的一个引擎。
性能测试:http://imysql.cn/2008_07_25_innodb_vs_pbxt
引擎下载:http://www.primebase.org/download/index.php
官方网站:http://www.primebase.org/
【MySQL分支介绍】
[ MariaDB 数据库]
MariaDB 是一个采用 Maria 存储引擎的 MySQL 分支版本,是由原来 MySQL 的作者 Michael Widenius (Monty) 创办的Monty Program Ab公司所开发的免费开源的数据库服务器。基本上 MariaDB 的历史跟我上面讲的 Maria 存储引擎历史一样。MariaDB的设计目标就是用来取代 MySQL Server。Monty是开源数据库联盟(Open Database Alliance)的发起者,所以 MariaDB 也是开源数据库联盟的成员。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB引擎来替换InnoDB,MariaDB的存储引擎还包括了 PrimeBase XT (PBXT) 和 FederatedX 存储引擎,MariaDB基于GPL 2.0发布。
Monty Widenius提供了MySQL的分支MariaDB候选版本。MariaDB 5.1完全兼容MySQL 5.1,这个版本早在2008年11月就发布了,增加了很多新的功能和若干个新的补丁程序。开发者称这个候选版本非常稳定。基本上 MySQL,MariaDB 解决了很多问题,例如“pool of threads”功能提供解决多数据连接问题。目前 MariaDB 发布的Release版本是 5.1.44,基本上应该是跟 MySQL 5.1 的版本兼容的。
MariaDB 基本上名门之后,加上MySQL创始人Monty的实力和号召力,是作为MySQL一个非常好的替代品,前途发展无限,值得我们尝试使用。
MariaDB中存储引擎介绍:
Maria: http://askmonty.org/wiki/Maria
XtraDB:http://www.percona.com/docs/wiki/percona-xtradb:start
PBXT: http://www.primebase.org/
FederatedX:https://launchpad.net/federatedx
MariaDB下载:http://askmonty.org/wiki/MariaDB:Download
MariaDB网站:http://askmonty.org
[ Drizzle 数据库]
Drizzle,是从MySQL衍生出来的一个数据库服务器,一个精简版的MySQL分支,Drizzle项目的宗旨是构建一个“更精练、更轻量、更快 速”的MySQL版本,它的扩展性和易用性与MySQL相当,但为了提高性能和扩展性,它从原来的核心系统里移除了部分功能。 Drizzle 也是开源数据库联盟(Open Database Alliance)成员。
MySql的架构设计总监Brian Aker在O’Reilly开放源码大会(OSCON)上对Drizzle做了介绍。Drizzle是一个能为某些特定类别的应用提供支持的数据库项目(“what if” project)。Drizzle的设计目标:
1. Web应用。
2. 云计算组件。
3. 没有业务逻辑的数据库(又名存储过程)。
4. 多核架构。
Drizzle,一个精简版的MySQL分支,在目前的MySQL代码基本之上,将存储过程、视图、触发器、查询缓存、PREPARE语句等等没什 么必要 的功能从代码中删掉,简化对数据类型和存储引擎的支持,并且进行大胆的重构。最终要实现的目的是将MySQL的代码大大简化,理顺MySQL的架构,改善 MySQL的代码质量,提高系统的稳定性和性能。将更适合 Web应用、云计算组件、没有业务逻辑的数据库(又名存储过程)、多核架构 等业务
Drizzle的特征有:
* 基于MySQL 6.0的源码树
* 无附加库
* 遵守POSIX
* 微内核设计
* 可插拔架构,适用于视图、存储过程、UDF、存储引擎等
* 跨多个节点的Sharding技术
* 智能代理
* 多CPU/多核CPU
* 优化的字段类型
* 高效的内存使用
* 没有内部ACL,使用LDAP/PAM
* 没有数据库数据格式化
* 整理有序的Make系统
* 缺省存储引擎为InnoDB
* 移除Windows兼容性
Drizzle下载:https://launchpad.net/drizzle 【总结语】 基本上来说,目前MySQL还是主流(MyISAM/InnoDB),但是未来发展不可预测,并且有这些除了MySQL之外的选择,也许有一天Oracle把MySQL彻底消灭掉了,但是我们同样还有 MariaDB、Drizzle可以选择,这就是开源的力量。 对比几个MySQL的存储引擎,Maria 和 XtraDB 是值得大家目前投入逐步使用的行列的,多做一些测试,灰度放亮,获得一个合理结果然后再使用是比较合适的。MySQL的数据库分支来说,MariaDB 也是比较值得尝试使用的,毕竟目前 Drizzle 还不是太成熟稳定,并且不一定适合你所做的业务。我所了解国内部分互联网公司也有在使用 MariaDB 的,并且效果不错,大家也都可以按照自己的情况来使用。 目前NoSQL运动如火如荼,有些业务更适合采用Key==>Value或这是BigTable类型的数据存储方式,也许MySQL不是最好 的,当然选择最合适存储,也许未来大部分数据库市场会被NoSQL所占领,但是我觉得关系型数据库还是未来几年很重要的存储方式。 在MySQL被Sun收购,已经Sun被Oracle收购的过程中,整个开源世界都是在翻天覆地的变化,特别是MySQL的命运一直都是所有使用和 热爱开源数据库的人们所关注的,在这些商业竞争中,那些开源斗士(比如 Monty),都通过别的方式,继续发扬了MySQL这种开源数据库。我们长期来看,总会有一些东西会消失,比如 Falcon存储引擎,有些东西会继续发展,比如 MariaDB或Drizzle,但是这些都为开源技术做出了贡献,也为数据库领域增添了色彩。
Drizzle网站:http://drizzle.org/
发表评论
-
Oracle的where条件in/not in中包含NULL时的处理
2018-01-15 13:15 1576创建一个测试表t_inlinuxidc@TEST> ... -
在sae中设置django,让sae的工作环境跟本地python环境一致
2018-01-15 13:15 421sae中安装有python环境,想让sae导入自己下载的d ... -
win10下Django工程的创建
2018-01-11 13:39 368一、配置环境 win ... -
MySQL 5.7.18 zip文件安装教程
2018-01-11 13:47 514MySQL 5.7.18 zip 文件安装教程 安装 ... -
win10下Django工程的创建
2018-01-11 13:34 587一、配置环境 win10、python3.6、p ... -
MySql数据库逻辑架构讲解
2018-01-11 13:44 625与其他数据库相比,My ... -
Python使用虚拟环境
2018-01-11 13:44 437这里想象一下需 ... -
Kivy 中文教程 实例入门 简易画板 (Simple Paint App):1. 自定义窗口部件 (widget)
2018-01-05 10:01 8861. 框架代码 用 PyCharm 新建一个名为 S ... -
Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 2. 变量
2018-01-05 10:01 1135大家在中学就已经学过变量的概念了。例如:我们令 x = 1 ... -
面向对象1
2018-01-05 09:49 453面向对象概念 面向对象是利用类和对象来创建各种模型对 ... -
Python列表及元组操作
2018-01-05 09:49 560#列表(一组有序 ... -
Python的hasattr() getattr() setattr() 函数使用方法详解
2018-01-05 09:57 717hasattr(object, name)判断一个对象里面 ... -
利用DBUTILS获得刚插入自增id记录的id信息的方法及代码
2018-01-02 12:36 2063我在做两个需要关联的表的时候,第二张表需要知道第一张表的i ... -
win10如何打开sqlserver配置管理器
2018-01-02 12:24 1057win10如何打开sqlserver配置管理器,windo ... -
数据库查询语言DQL使用介绍
2018-01-02 12:24 509(1)C++ppentry.C++om/list.php? ... -
Redis Basic在CentOS下安装指令
2018-01-02 12:23 495安装 C++entOS下安装指令: wge ... -
SpringBoot整合PageHelper实现数据库分页的代码教程
2018-01-02 12:23 743最近学习了SpringBoot 由于需要数据库分页功能 再 ... -
Day01_计算机硬件及启动流程
2017-12-26 17:23 551一.计算机硬件介绍 概念:由一条总线把CPU、内存和 ... -
python+Eclipse+pydev环境搭建
2017-12-26 17:12 398本文重点介绍使用Eclipse+pydev插件来写Pyth ... -
Python学习一:序列基础详解
2017-12-26 17:20 431作者:NiceCui 本文谢绝转载,如需转载需征得作 ...
相关推荐
MySQL数据库存储引擎是数据库系统的核心组成部分,它们决定了数据如何存储、检索和管理。MySQL作为一款广泛应用的开源关系型数据库管理系统,其发展历程与存储引擎的选择密切相关。在2008年Sun公司收购MySQL后,再到...
综上所述,MySQL数据库因其灵活的架构、强大的功能以及广泛的社区支持而受到许多企业和开发者的青睐。无论是对于初学者还是资深数据库管理员来说,理解和掌握MySQL的核心架构和技术要点都是非常重要的。
整个演讲的重点在于分享MySQL运维优化的实践经验,探讨MySQL的现状和未来的发展方向,以及如何通过运维优化实践来提高数据库系统的性能和稳定性。杨尚刚的分享不仅是对MySQL运维人员的一次知识普及,更是对其未来...
- **职位**: 大型门户网站 MySQL 数据库规划、设计和管理。 - **要求**: 至少 5 年工作经验,其中 3 年以上 MySQL DBA 经验,具备开发背景者优先。 - **职责**: - 性能优化 - 制定监控、备份和容灾策略 - 日常...
- **InnoDB插件的合并**:InnoDB存储引擎作为MySQL的核心组件之一,在5.5版本中被正式集成到了MySQL的核心代码库中,增强了其稳定性和兼容性。 - **锁定机制的改进**:通过优化锁定机制来提高垂直扩展能力。 - **...
4. 数据库集成:使用MySQL数据库存储检测结果,方便查询和分析。 5. 用户界面:通过jsp(JavaServer Pages)技术创建用户交互界面,显示检测结果和报警信息。 2.1 基于C/S结构开发 C/S架构使得系统分为客户端和...
后端则结合MySQL数据库来存储和管理数据,确保系统稳定运行。 综上所述,本论文设计了一个基于深度学习的口红识别系统,通过卷积神经网络进行图像分析,利用目标检测技术精确定位口红颜色,并结合Vue.js和MySQL...
数据库通常使用MySQL这样的关系型数据库管理系统来存储和管理大量的书籍信息、用户数据和交易记录。 在软件实现阶段,论文分别从服务器端和客户端两个层面详细描述了代码设计和关键功能的实现。服务器端可能采用了...
国内外研究现状表明,管理信息系统(MIS)在信息收集、处理、存储和提供决策支持方面发挥了重要作用。学生信息管理系统作为MIS的一个分支,自20世纪60年代以来经历了从单机系统到网络化的演变。国外高校在数字化校园...
数据存储方面,系统选择了MySQL数据库,这是一款开源、免费的关系型数据库管理系统,具有高效、可靠的数据处理能力,能够满足冷链物流配送系统大量数据存储和快速查询的需求。 在系统设计上,首先进行了需求分析,...
数据库选用MySQL,以其稳定性、可扩展性和丰富的社区支持为网上书店系统提供了坚实的数据存储基础。 在软件实现部分,论文分别从服务器端和客户端两个层面进行了详细说明。服务器端采用SpringMVC+Spring+Mybatis...
此外,MySQL数据库用于存储数据,前端可使用React或Vue.js等现代前端框架,提供流畅的用户体验。 2.3 经济可行性 相比于传统的开发模式,基于开源技术的SpringBoot项目可以降低开发成本,同时,由于系统维护简单,...
##### 2.3 MySQL数据库 MySQL是一种关系型数据库管理系统,因其性能稳定、速度快、成本低等特点,在中小型企业和互联网应用中得到广泛应用。本系统采用MySQL作为数据存储工具,用于存储资产信息、用户信息等相关...
8. **数据存储**:对于记录的数据,可能需要将其保存到文件或数据库中,Python提供了sqlite3库进行轻量级数据库操作,或者可以使用更强大的数据库接口如pymysql或psycopg2连接MySQL或PostgreSQL。 9. **版本控制**...