`
saybody
  • 浏览: 903278 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

关于NDB的表优化

阅读更多

我们知道,MySQL Cluster 产品用的主要的引擎为:NDB。 很多人说对于NDB来说,执行SQL语句的性能很差。但是我觉得主要是没有仔细的探索。

对于数据库来说,要判断他的性能如何,无非是要看两点:
1. 对于数据库的写操作,这里涉及到INSERT, DELETE,UPDATE, DROP等实实在在的语句。
2. 对于数据库的读操作,这里主要是用来查询的SELECT语句。
那么,我们怎么样才能对这些语句,也就是说让这些语句在用在他们擅长的场合呢?首先我们来看看初步看看写操作的优化。

对于写来说,要优化有以下几点:
1. 选择合适的字段类型。 比如:你要存储3个字节的字符到NDB,那么你应该选择VARCHAR(3), 而不是VARCHAR(4)或者 VARCHAR(5)。 因为对于NDB来讲,每一行的每一列都要对应的以4个字节的倍数来存储,所以对于VARCHAR(3)来说,对于4个字节,那么对于VARCHAR(4) 呢,就得等于8个字节了。
2. 选择合适的索引, 删除不必要的索引。 大家都知道,NDB自身可用的索引类型为T-TREE和HASH。 对于任何主键和唯一索引,都以HASH结构来存放。对于其他的索引,都以T-TREE来存放。那么我们来看下面的这个简单的表结构:
create table ytt_1 (id int not null, primary key (id)) engine ndb;
create table ytt_2 (id int not null, primary key (id) using hash) engine ndb;
大家觉得上面两个表结构的写性能哪个好呢?答案是ytt_2. 这个可以好好思考下为什么!

那么对于读呢?怎么优化?
有的人会问,我看到一大堆大堆得人把NDB 和 INNODB 以及MYISAM这些传统的引擎来对比。 这无疑是一种大大的错误! 其实说白了,他们的处理方式是一样的。但是你的对比硬件环境是否允许?
1. NDB 为什么叫NDB? NETWORK DATABASE。网络数据库。也就是说NDB的每项操作都要跟网络相关。特别是对于他不擅长的JOIN操作。
2. 对于单表而且是根据主键来查找,那速度可是来的非常快!
其实最重要的一点就是NDB能保证数据5个9的可靠性,其他引擎能吗?

分享到:
评论

相关推荐

    NDB代码分析1

    【NDB代码分析1】 1. 概述 NDB(Network Database)是MySQL Cluster中的分布式事务存储引擎,它提供高可用性和数据复制。NDB协议交互模式涉及到MySQL服务器节点...深入理解这些细节对于优化和调试NDB集群至关重要。

    Pro MySQL NDB Cluster

    MySQL NDB Cluster是一套高可用性的、分布式、内存存储的数据库集群技术,...对于数据库管理员和相关开发人员而言,这本书无疑是一个宝贵的工具,帮助他们更高效地管理和优化NDB Cluster,确保数据库服务的稳定运行。

    Node.js-ndb是针对Node.js的改进调试体验由ChromeDevTools支持

    总之,`ndb`是Node.js开发者提高效率、优化调试流程的有力工具。它将Chrome DevTools的强大功能与Node.js的生态环境相结合,使得在服务器端的JavaScript调试变得更加直观和高效。无论你是初学者还是经验丰富的开发者...

    Python库 | google_cloud_ndb-1.3.0-py3-none-any.whl

    7. **预加载(Preloading)** - 用于在查询前加载相关数据,以优化性能。 8. **异步操作(Asynchronous Operations)** - NDB库支持异步编程模式,允许在等待IO操作完成的同时执行其他任务。 **安装与使用** 要...

    The NDB Engine for Memcached Presentation

    - **MySQL权限表存储**:现在可以在集群中存储MySQL权限表,加强了安全性和管理的灵活性。 - **Memcache API集成**:将Memcached的功能融入NDB Engine,使得数据缓存和快速访问成为可能,进一步提升了应用性能。 ##...

    CentOS8部署Mysql NDB Cluster8+Mysql Router8方案及应用.pdf

    【MySQL NDB Cluster 8 on CentOS8 部署详解】 MySQL NDB Cluster是一种高可用性和高性能的数据库解决方案,尤其适合需要数据复制和分布式事务处理的场景。在CentOS8上部署MySQL NDB Cluster 8及Mysql Router 8,...

    MySQL 8.0参考手册 Including MySQL NDB Cluster 8.0

    本手册涵盖了 MySQL 8.0 的所有方面,包括安装、配置、管理、性能优化、安全性和故障排除等。同时,本手册也涵盖了 MySQL NDB Cluster 8.0 的相关内容,包括集群的配置、管理和故障排除等。 MySQL 8.0 的应用场景...

    MySQL Cluster NDB 7.3和MySQL Cluster NDB 7.4的已知限制

    7. 配置复杂性:设置和优化MySQL Cluster NDB需要深入理解和调试大量的配置参数,这增加了管理的复杂性。 8. 网络依赖性:MySQL Cluster NDB高度依赖网络通信,网络延迟和故障会影响集群性能和稳定性。因此,网络...

    mysql NDBcluster高可用集群介绍及部署搭建说明

    - **数据库工程师**:负责数据库设计、实施和优化的专业人员可以通过学习本资源了解如何利用 NDB Cluster 实现高可用性。 - **IT 专业人士**:希望提升数据库高可用性的 IT 从业者,无论是初学者还是有一定经验的...

    mysql_cluster_7.3

    例如,它可能包括对节点间通信协议的优化、改进的负载均衡和故障转移机制、对数据一致性和同步的增强措施等。 此外,MySQL Cluster NDB 7.3还提供了更好的并行查询处理能力和数据压缩选项,使得大数据量的查询能够...

    MySQL 8.0 Reference Manual - Including MySQL NDB Cluster 8.0

    ##### 1.1 关于本手册 - **手册范围**:该手册涵盖了 MySQL 8.0 至 8.0.38 版本以及基于 NDB 8.0 至 8.0.38 的 NDB Cluster 相关内容。 - **版本更新**:手册中可能包含了尚未发布的 MySQL 版本的新特性。 - **发布...

    MySQL 8.1 Reference Manual - Including MySQL NDB Cluster 8.1

    关于本手册 本手册是MySQL 8.1参考手册,涵盖了MySQL 8.1(版本8.1.0)以及NDB Cluster 8.1(版本8.1.0-ndb-8.1.0)的相关内容。该手册可能会包括尚未发布的MySQL版本的功能介绍。有关已发布版本的信息,请参阅...

    Mysql数据库与SQL优化+集群+负载均衡.doc

    4. 存储引擎管理:MySQL 提供了多种存储引擎,包括 ISAM、MyISAM、InnoDB、Memory、NDBCluster、Merge、FEDERATED、ARCHIVE、BLACKHOLE 和 CSV 等。不同的存储引擎有其特点和应用场景,合理的存储引擎选择可以提高...

    详解MySQL性能优化(一)

    查询优化包括避免全表扫描、减少JOIN操作、合理使用索引等。配置参数的调整也很重要,例如调整缓冲池大小、最大连接数等。硬件优化,如使用SSD硬盘、足够的内存,也能提升性能。 总之,MySQL性能优化是一个全面的...

    MySQL性能优化实践.docx

    例如,合理设计数据库范式、避免全表扫描、利用索引、减少JOIN操作等都是常见的优化手段。 SQL查询优化是性能提升的重要环节。应避免使用SELECT *,明确指定需要的列;避免在WHERE子句中使用!=或操作符;合理使用...

    高级MySQL性能优化

    3. 数据库模式设计和查询优化:深入分析数据库模式设计对性能的影响,包括合理的表结构设计和索引策略,以及针对复杂查询的优化技巧。 4. 服务器设置优化:探讨MySQL服务器的配置选项对性能的影响,如缓冲区大小、...

    MySQL性能优化Workshop

    ### MySQL性能优化Workshop——架构与引擎深度剖析 在当今数据驱动的世界中,数据库的性能优化成为了企业关注的焦点,而MySQL作为...在后续的实践中,我们还将继续探索更多关于MySQL性能优化的技巧和策略,敬请期待。

    MySQL介绍和优化分享免费范文精选.docx

    除此之外,还有其他引擎如Memory(内存表)、BerkleyDB、NDB Cluster(用于分布式环境)等,可以根据具体需求进行选择。 MySQL的优化是一个复杂的过程,涉及多个层面,包括查询优化、索引优化、配置参数调整、硬件...

Global site tag (gtag.js) - Google Analytics