草庐IT

MySQL NDB 集群 : is it good for large scale solutions?

coder 2023-10-20 原文

一个关于 NDBCLUSTER 的问题。

继承了一个基于NDBCLUSTER 5.1方案(LAMP平台)的网站编写。

不幸的是,设计前一个解决方案的人并没有意识到这个数据库引擎有很大的局限性。第一,一张表最多可以有128个字段。前程序员设计的表单行有369个字段,一年中的每一天加上一些关键字段(他最初使用的是MyISAM引擎)。好的,无论如何,它必须重构,我知道。

更重要的是,引擎需要大量调整:表的最大属性数(默认为 1000,有点太少了)和许多其他参数,对这些参数的误解或低估一旦出现就会导致严重的问题您正在使用您的数据库进行生产,并且您被迫更改某些内容。

即使 NDBCLUSTER 表的磁盘存储在没有精确配置的情况下也是一种偶然的事实:即使在 CREATE TABLE 语句中指定,引擎似乎更喜欢将数据保存在内存中——这解释了速度——但如果您在节点 1 上的表应该突然崩溃(就像在测试期间那样)。仅在 1000 条记录后所有节点上的所有表数据丢失和表损坏。

我们在一台有 8Gb RAM 的服务器上,该表只有 27 个字段。

请注意,没有针对节点关闭运行的 ndb_mgm 操作会破坏表数据。它只是倒下了,完全停止了。我们的提供商不明白为什么。

所以问题是:您会推荐 NDBCLUSTER 作为大型 Web 服务数据库的稳定解决方案吗?

我们谈论的数据库应该包含数百万条记录、数千个表和数千个目录。

如果不是,您会推荐哪个数据库是完成创建国家级网络服务任务的最佳数据库。

提前致谢。

最佳答案

我对 NDBCLUSTER 的体验很糟糕。它是具有范围失效功能的 memcached 的良好替代品,仅此而已。此解决方案不存在稳定性和可配置性。您不能强制所有进程监听特定端口,备份工作正常但我必须在 vim 中编辑 bkp 文件以恢复数据库等。

关于MySQL NDB 集群 : is it good for large scale solutions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3821613/

有关MySQL NDB 集群 : is it good for large scale solutions?的更多相关文章

  1. 【详解】Docker安装Elasticsearch7.16.1集群 - 2

    开门见山|拉取镜像dockerpullelasticsearch:7.16.1|配置存放的目录#存放配置文件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/config#存放数据的文件夹mkdir-p/opt/docker/elasticsearch/node-1/data#存放运行日志的文件夹mkdir-p/opt/docker/elasticsearch/node-1/log#存放IK分词插件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/plugins若你使用了moba,直接右键新建即可如上图所示依次类推创建

  2. 关于ES集群信息的一些查看 - 2

    文章目录查看ES信息查看节点信息查看分片信息实际场景下ES分片及副本数量应该怎么分关于ES的灵活使用查看ES信息查看版本kibana:GET/查看节点信息GET/_cat/nodes?v解释:ip:集群中节点的ip地址;heap.percent:堆内存的占用百分比;ram.percent:总内存的占用百分比,其实这个不是很准确,因为buff/cache和available也被当作使用内存;cpu:cpu占用百分比;load_1m:1分钟内cpu负载;load_5m:5分钟内cpu负载;load_15m:15分钟内cpu负载;node.role:上图的dilmrt代表全部权限master:*代表

  3. linux查看es节点使用情况,elasticsearch(es) 如何查看当前集群中哪个节点是主节点(master) - 2

    elasticsearch查看当前集群中的master节点是哪个需要使用_cat监控命令,具体如下。查看方法es主节点确定命令,以kibana上查看示例如下:GET_cat/nodesv返回结果示例如下:ipheap.percentram.percentcpuload_1mload_5mload_15mnode.rolemastername172.16.16.188529952.591.701.45mdi-elastic3172.16.16.187329950.990.991.19mdi-elastic2172.16.16.231699940.871.001.03mdi-elastic4172

  4. kubernetes集群划分节点 - 2

    Kubernetes(K8s)是一个用于管理容器化应用程序的开源平台,可以帮助开发人员更轻松地部署、管理和扩展应用程序。在Kubernetes中,集群划分是一种重要的概念,可以帮助我们更好地组织和管理集群中的节点和资源。本文将介绍如何使用Kubernetes对集群进行划分,并提供详细的操作示例,希望能够帮助读者更好地了解和使用Kubernetes平台。Node划分Node划分是将集群中的节点按照一定的规则进行划分。在Kubernetes中,可以使用NodeSelector和Affinity机制来实现Node划分。NodeSelectorNodeSelector是一种将Pod调度到符合特定节点标

  5. 五-1、elasticsearch集群搭建(ES集群搭建) - 2

    目录一、下载Elasticsearch1.选择你要下载的Elasticsearch版本二、采用通用搭建集群的方法三、配置三台es1.上传压缩包到任意一台虚拟机中2.解压并修改配置文件(配置单台es)3.配置三台es集群4.设置后台启动和开机自启(可选)一、下载Elasticsearch1.选择你要下载的Elasticsearch版本es下载地址这里我下载的是二、采用通用搭建集群的方法集群搭建方法三、配置三台es1.上传压缩包到任意一台虚拟机中上传方式有两种第一种:使用xftp上传直接拖动过去就可以了。第二种:使用lrzsz先安装yum-yinstalllrzsz切换到要上传的位置cd/opt/

  6. idea连接远程k8s集群使用kubernetes-client - 2

    文章目录一.k8s集群修改config1.1备份当前k8s集群配置文件1.2删除当前k8s集群的apiserver的cert和key1.3生成新的apiserver的cert和key1.4刷新admin.conf1.5重启apiserver1.6刷新.kube/config二.安装kubectl2.1下载kubectl2.2配置kubectl三.使用kubernetes-client操作k8s集群3.1依赖3.2注意(可忽略)3.3创建StatefulSet3.4运行shell命令3.5删除StatefulSet3.6线上运行注意一.k8s集群修改config因为默认的是内网IP,复制出来后,

  7. ElasticSearch(十一)【集群搭建】 - 2

    十一、ES集群的相关概念上一篇文章《ElasticSearch-聚合查询》集群(cluster)一个集群就是由一个或多个节点组织在一起,它们共同持有你整个的数据,并一起提供索引和搜整合应用索功能。一个集群由一个唯一的名字标识,这个名字默认就是elasticsearch。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群节点(node)一个节点是集群中的一个服务器,作为集群的一部分,它存储你的数据,参与集群的索引节点和搜索功能。和集群类似,一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点索引(Index)一组

  8. docker搭建ElasticSearch集群 - 2

    一、安装ElasticSearch使用docker直接获取es镜像,执行命令dockerpullelasticsearch:7.7.0执行完成后,执行dockerimages即可看到上一步拉取的镜像。二、创建数据挂在目录,以及配置ElasticSearch集群配置文件,调高JVM线程数限制数量1.创建数据文件挂载目录,然后直接关闭防火墙mkdir-p/home/soft/ESmkdir-p/home/soft/ES/configcd/home/soft/ES创建挂载目录mkdirdata1data2data3进入config文件里面创建es配置文件cdES/config/查询防火墙状态syst

  9. javascript - 谷歌地图集群自定义图像 - 2

    我想用自定义图像更改谷歌地图聚类。但是,它不会改变我提供的任何内容。这个initMap函数是https://developers.google.com/maps/documentation/javascript/marker-clustering然后我尝试用来自谷歌的一些随机图像来更改集群图像。但是,它不呈现任何内容。集群不支持自定义集群镜像??functioninitMap(){varmap=newgoogle.maps.Map(document.getElementById('map'),{zoom:3,center:{lat:-28.024,lng:140.887}});//Cr

  10. ES数据存储和集群路由原理 - 2

    ES数据存储1、存储流程为了将数据添加到Elasticsearch,我们需要索引(index)——一个存储关联数据的地方。实际上,索引  只是一个用来指向一个或多个分片(shards)的“逻辑命名空间(logicalnamespace)”.一个分片(shard)是一个最小级别“工作单元(workerunit)”,它只是保存了索引中所有数据的一部分。当一个写请求发送到es后,es将数据写入memorybuffer中,并添加事务日志(translog)。如果每次一条数据写入内存后立即写到硬盘文件上,由于写入的数据肯定是离散的,因此写入硬盘的操 作也就是随机写入了。硬盘随机写入的效率相当低,会严重降

随机推荐