- 浏览: 510211 次
- 性别:
- 来自: 大连->北京
文章分类
最新评论
-
春天好:
写的很不错 推荐一个免费好用的云端爬虫开发平台不需要安装环境, ...
web爬虫 -
cpu88:
网络爬虫爬来爬去,网上信息可以瞬间扩散,但是也意味着,没有人愿 ...
web爬虫 -
biaoming:
牛。。学习了。。
MongoDB 关于索引的建议 -
biaoming:
楼主用mongo好早啊。
MongoDB 优化 -
biaoming:
好教程,学习了。。。
MongoDB 优化
MEMORY (HEAP)引擎
当你需要快速读取数据,在服务器重启后,也不需要改变和保存数据,使用Memory表(以前叫做HEAP 表)是非常合适的。
Memory表要比MyISAM表快上一个级别。所有的数据都放在内存中,所以查询不用等待硬盘的I/O。在服务器重启后,表结构依然存在,但是数据都会丢失。
下面说几个可以用到Memory表的情况。
- 对于查找或映射表比较适合,如 邮政编码对应的国家名称。
- 缓存定期的聚合数据。
- 分析数据时的中间结果。
Archive引擎
CSV引擎
Federated引擎
Blackhole引擎
Blackhole引擎没有任何存储的机制。它抛弃了一切的INSERT,并不去储存。然而服务器的写入语句还是会被日志记录下来。因此它们可以被复制到从服务器或者简单的保存在日志中。所以Blackhole对于复制的设置是非常有用的并且可以审核记录。
NDB Cluster引擎
在2003年,MySQL AB从索尼爱立信公司得到了NDB Cluster。它最初被设计为高速的(实时的性能需求)并有降低信息转换的错误率以及负载均衡的能力。虽然它记录到了硬盘,但是在内存中保存了数据以及针对主键查找进行了优化。MySQL添加了其他的索引方法和做了大量的优化。在MySQL5.1中,允许在硬盘上存储一些列了。
NDB的架构是唯一的。NDB的集群也是完全不相同的。举个例子,ORACLE的集群。NDB基础结构是基于无共享(shared-nothing)的概念。网络中并没有存储的区域或者其他大的存储方案。对于其他的集群也是一样的。一个NDB数据库由数据节点组成的,并管理节点和SQL节点(MySQL实例)。每个数据节点都保存了集群数据的一段(数据的碎片)。这一段数据被复制,因此在不同的数据节点上就有很多相同数据的拷贝。一个物理服务器专门负责降低数据错误率和高可用性。这个方面NDB和RAID有点相似。
管理的节点用来获取集中配置。以及负责监控和控制集群节点。所有的数据节点都是彼此连接,以及所有的MySQL服务器连接所有的数据节点。低网络延迟对NDB集群尤为重要。
一些要注意的事情:NDB集群是非常COOL的技术,研究它绝对能满足你的好奇心,但是许多技术人员却因为这个原因却错误的使用它。就我们的经验来说,就算很认真的学习之后,不经过一段时间的实践,许多人还是不知道t它的用途和工作方式。结果往往是浪费了很多时间,因为它不是为一般用途的存储引擎。
常常令人意外的是,NDB常常应用在MySQL服务器级别而不是在存储引擎的一层。因为对于NDB必须通过网络,复杂的连接以及超慢的速度来获取所有的数据。换句话说,单表的查找是非常快的。因为多数据节点都提供数据的一部分。当你为了特殊的应用来查看NDB集群的时候,这点是你应该考虑和理解的。
NDB集群内容非常之多,非常复杂,我们以后的教程不会说到他。你应该找到一本专门介绍它的书。对于大多数传统的应用工,它并不是适合。
Falcon 引擎
Jim Starkey是个数据库贡献者,他发明了Interbase, MVCC, BLOB。Falcon也是他设计的。在2006年,MySQL AB获得了Falcon技术。Jim现在已经加入了MySQL AB.
Falcon是专门为今天的硬件所设计的。现在的服务器一般都是64位处理器和大量的内存。但是它也能运行在配置适中的环境中。Falcon使用了MVCC以及把活动的事物都保存到了内存中。这点可以使回滚和恢复操作非常迅速。
Falcon现在还没有完成。所以我们并不能很权威的介绍这个引擎。即使我们已经对它进行了基准测试,但是到了它使用的那一天估计这些已经没用了。目前我们仅仅知道它的潜在应用是在线应用,但是随着时间的流失我们会更了解它。
solidDB 引擎
solidDB引擎是由 Solid Information Technology所设计的。网址(http://www.soliddb.com)。它是个使用MVCC并支持事物的引擎。并支持乐观和悲观的并发控制。这点没有引擎可以做的到。对于MySQL的solidDB,它完全支持外键。在很多地方都和InnoDB相似,如集群的索引。并且还支持在线的恢复策略。
针对MySQL的solidDB产品完全打包了solidDB,MyISAM以及MySQL服务器。在2006年末就出现这种捆绑方式,Solid将会服务和支持整个产品。它的许可证是GPL和商业授权的双许可证,对于MySQL服务器也是一样的。
PBXT (Primebase XT) 引擎
PBXT引擎是由德国汉堡的SNAP股份有限公司的Paul McCullagh开发的。它是支持事物的引擎。和其他引擎的设计是完全不一样的。其中一点不同在于它使用事物日志以及数据文件的方法,避免了预写日志(write-ahead logging)。这点会降低事物提交的消耗。架构师使PBXT有很高的写并发的能力。测试表明在一些操作上已经超过了InnoDB的性能了。PBXT使用MVCC技术完全支持外键约束,但是不支持集群索引。
PBXT是个彻彻底底的新的引擎,在产品环境中,它需要更进一步的证明自己。例如,它最近才实现了持久事物。
作为PBXT的扩展,SNAP正在写一个叫做blob streaming的基础架构。它被用在更有效地存储和获取二进制文件上。
Maria存储引擎
这个引擎是由MySQL顶尖的开发工程师开发的。包括了MySQL的创始人Michael Widenius。最初的1.0版本仅仅包含了一些计划中的特性。
它的任务是用来取代MyISAM。MyISAM现在作为MySQL默认的存储引擎,服务器用它完成一些任务如privilege tables,temporary tables等。下面说一下它的路线图:
- 每个表既可以是事物的也可以不是。
- 当表运行在非事物下,支持错误修复。
- 行锁以及MVCC
- 更好的BLOB处理。
其他的存储引擎
有许多第三方提供了存储引擎。以及有大量的满足特殊以及试验性质的引擎。(如,有一个引擎是为了查找web services).往往这些引擎是由一两个人开发的。因为开发一个MySQL的存储引擎并不是很难。但是,大部分的引擎都没广泛的应用,因为它们的功能范围很有限。还是你自己去寻找它们吧。
发表评论
-
查询性能的优化 - 语句执行的基础 - 查询优化的过程 (一)
2010-01-20 12:00 3516在语句生命周期的下一步就是把一个SQL查询放入一个可执行 ... -
查询性能的优化 - 语句执行的基础 - 已缓存的查询语句
2009-12-01 09:58 1235在解析一个查询之前,如果缓存开启,MySQL要检查它的缓存。这 ... -
查询性能的优化 - 语句执行的基础 - MySQL 客户端/服务端 协议
2009-12-01 01:25 1969MySQL 客户端/服务端 协 ... -
查询性能的优化 - 语句执行的基础
2009-11-30 00:36 1055如果你想从MySQL服务器获得很高的性能,建议你花费一定的时间 ... -
查询性能的优化 - 重新构建查询的方法 - 分解JOIN查询
2009-11-29 11:54 1873分解JOIN查询 许多高性能的网站都分解了JOIN查询。你可 ... -
查询性能的优化 - 重新构建查询的方法 - 拆分一个查询语句
2009-11-28 23:17 1536拆分一个查询语句 另一个分解查询的方法是分步解决。本质上来 ... -
查询性能的优化 - 重新构建查询的方法 - 复杂查询VS多个查询语句
2009-11-28 01:32 1562当开始优化有问题的查 ... -
查询性能的优化 - 查询慢的基础知识:优化数据访问
2009-08-19 14:50 1701一个查询执行的不是 ... -
查询性能的优化 - 前言
2009-08-12 16:49 1034上一章,我们解释了怎样优化schema.这是高性能的一个必要条 ... -
Schema的优化和索引 - 关于存储引擎的简单记录
2009-08-12 15:26 1111这一章的结束,我们来说一下关于设计模型的存储引擎的选择,这些你 ... -
Schema的优化和索引 - 加速ALTER TABLE
2009-08-12 14:02 1886当对于一个大表进行ALTER TABLE的时候,性能问题就产生 ... -
Schema的优化和索引 - 范式和非范式
2009-08-12 11:35 1739有很多方法来展现给定的数据。从完全范式到完全的非范式以及介于两 ... -
Schema的优化和索引 - 索引和表的维护
2009-08-10 15:38 1469当你已经创建了一张表 ... -
Schema的优化和索引 - 学习一个索引示例
2009-08-06 14:09 1168用例子来理解索引的概 ... -
Schema的优化和索引 - 高性能的索引策略 - 索引和锁
2009-07-31 15:48 1057InnoDB中,索引所扮演的角色是非常重要的。因为它们可以能让 ... -
Schema的优化和索引 - 高性能的索引策略 - 冗余和重复的索引
2009-07-31 11:37 2106MySQL可以在一个列上创建多个索引;这么做并不会提醒和防止发 ... -
Schema的优化和索引 - 高性能的索引策略 - 压缩索引(Packed Indexes)
2009-07-30 21:30 1462MyISAM使用前缀压缩来降低索引的大小,这样就可以把更多的索 ... -
Schema的优化和索引 - 高性能的索引策略 - 使用索引扫描来进行排序
2009-07-28 10:43 2244MySQL有两种方法生成有序的结果:使用文件排序或者按顺序的扫 ... -
Schema的优化和索引 - 高性能的索引策略 - 覆盖索引(Covering Indexes)
2009-07-22 15:25 2618索引是高效找到行的一 ... -
Schema的优化和索引 - 高性能的索引策略 - 聚簇索引(Clustered Indexes)
2009-07-20 23:29 3185聚簇索引并不是一个独立的索引类型。确切的说它们是存储数据的一个 ...
相关推荐
服务层是MySQL架构的最上层,主要负责客户端的连接处理、授权认证以及安全检查,为客户端提供访问MySQL服务的接口。 核心层主要包含查询解析、分析优化SQL语句,以及缓存查询结果等功能,是MySQL处理数据的核心部分...
### MySQL架构与存储引擎 #### 一、MySQL逻辑架构 MySQL作为一款广泛使用的开源关系型数据库管理系统,其内部架构设计非常精妙,旨在提供高效、可靠的数据存储与管理能力。 ##### 1、逻辑架构图 MySQL采用了典型...
MySQL数据库的架构设计允许存储引擎以插件式的方式存在,这意味着我们可以根据不同的应用需求选择不同的存储引擎。存储引擎负责数据的存储和提取,不同的存储引擎提供了不同的功能和特性,以适应不同的应用场景。 ...
本压缩包包含的是MySQL的客户端和服务器端的5.6.29版本,适用于Linux_glibc2.5.x86_64架构。这个版本在当时是MySQL的一个稳定版本,提供了许多功能和性能改进。 MySQL-client是用于与MySQL服务器进行交互的工具集,...
1. **性能提升**:MySQL 5.7通过优化查询执行引擎、缓存策略和InnoDB存储引擎提供了显著的性能提升,使得处理大数据集更加高效。 2. **InnoDB增强**:InnoDB存储引擎在5.7版本中得到了显著强化,包括支持更大的索引...
5. **8.0.20版本特性**:此版本包含了MySQL 8.0的主要改进,如优化的InnoDB存储引擎,增强的JSON支持,新的SQL功能,以及性能和安全性的提升。 6. **安装与配置**:解压“mysql-cluster-8.0.20-winx64.zip”后,...
- InnoDB 存储引擎增强:包括对大页内存的支持,改进的行格式,以及更好的性能监控。 - 查询优化器改进:采用了新的统计信息收集策略,提升了查询计划的准确性。 - 分区表改进:支持更多的分区类型和操作,例如在线...
10. **性能优化**:此版本的MySQL支持InnoDB存储引擎的性能优化,如InnoDB Buffer Pool、索引优化、并行查询处理等,以提高数据读写速度和整体性能。 总之,`mysql-community-server-8.4.0-1.el9.x86_64`是为RHEL/...
- **存储引擎**:MySQL支持多种存储引擎,如InnoDB(支持事务处理和外键)、MyISAM(快速读取,不支持事务)和Memory(数据存储在内存中)。选择合适的存储引擎对性能有很大影响。 - **索引**:创建索引可以加速...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而MySQL Connector/J则是MySQL官方提供的用于Java应用程序的数据...通过合理的架构设计和安全实践,可以有效地利用此驱动程序实现Android与MySQL之间的数据交换。
总的来说,"mysql-5.7.32-linux-glibc-2.28-aarch64.tar.gz"是为ARM架构设计的MySQL版本,旨在为基于ARM的设备提供稳定且高效的数据存储和管理解决方案。正确安装和配置MySQL 5.7.32,可以充分利用这些设备的潜力,...
MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其性能强大且功能丰富,广泛应用于网站开发、数据存储和处理等场景。Boost是一个C++库集合,提供了各种工具来增强应用程序的性能,包括线程管理、正则表达式...
"MySQL技术内幕 InnoDB存储引擎" 《MySQL技术内幕:InnoDB存储引擎》是一本深入解析InnoDB存储引擎的经典之作,由国内资深MySQL专家亲自执笔,国内外多位数据库专家联袂推荐。本书从源代码的角度深度解析了InnoDB的...
- **InnoDB存储引擎增强**:MySQL 5.7对InnoDB存储引擎进行了大量改进,包括更快的插入速度、更高的并发性和更小的数据文件占用空间。 - **JSON支持**:增加了对JSON数据类型的内置支持,允许用户在关系数据库中...
MySQL 5.6版本是一个较旧但仍然稳定且功能丰富的版本,它引入了许多性能改进和新特性,如InnoDB存储引擎的增强,支持更多SQL标准,以及更高效的查询优化器。 在Linux CentOS环境下安装MySQL,通常会通过命令行使用...
MySQL Cluster的核心在于其NDB(Network Database)存储引擎,它采用了Shared Nothing架构,即所有节点之间无共享硬件或磁盘,数据在多个节点间分布,以实现高可用性和可扩展性。在7.2.4版本中,这一特性得到了...
mysql架构设计与InnoDB存储引擎详解
- **性能优化**:MySQL 5.6引入了InnoDB存储引擎的性能增强,如InnoDB并行插入,提高了多线程插入的效率。 - **全文搜索**:增加了全文本搜索功能,支持更复杂的查询语法,提高了搜索精度。 - **分区改进**:表...
MySQL Connector/J是MySQL数据库系统与Java应用程序之间的桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在Java应用程序中访问MySQL数据库。本压缩包"mysql-...
1. **事务处理支持**: MySQL 5.0引入了InnoDB存储引擎,提供了ACID(原子性、一致性、隔离性、持久性)事务支持,这对于需要高度数据一致性的应用至关重要。 2. **SQL标准兼容性**: MySQL 5.0增强了对SQL92和SQL99...