数据库集群 mysql表数据量太大,达到了1亿多条数据,除了分库分表之外,还有没有其他的解决方式?
mysql表数据量太大,达到了1亿多条数据,除了分库分表之外,还有没有其他的解决方式?
在正常配置下,MySQL只能承载2000万数据(同时读写,表中有大文本字段,单服务器)。现在已经超过1亿,而且还在增加,建议按以下方式处理:
1子表。它可以按时间或一定的规则进行拆分,以便尽可能地查询子表中的数据库。这是最有效的方法。特别是写,放入一个新表,并定期同步。如果记录不断更新,最好将写入的数据放在redis中,并定期同步表3的大文本字段,将它们分隔成一个新的独立表。对于较大的文本字段,可以使用NoSQL数据库
4优化体系结构,或者优化SQL查询,避免联合表查询,尽量不要使用count(*)、in、recursion等性能消耗语句
5使用内存缓存,或者在前端读取时增加缓存数据库。重复读取时,直接从缓存中读取。
以上是一种低成本的管理方法,基本上几个服务器就可以做到,但是管理起来有点麻烦。
当然,如果整体数据量特别大,而且你不在乎投资成本,可以使用cluster,使用tidb
目前logstash没有cluster的概述,并且支持多个es节点的配置
这似乎是一种轮换训练机制。
对于此es加载,不同的日志存储可以配置不同的es节点。
并发数据给ES集群,如何实现数据的负载均衡?
首先,ES基于Lucene,这是一个非常成熟的索引方案,再加上一些分布式实现:集群、分片、复制等
ES的优势体现在以下几个方面:
横向可扩展性:只需添加一个服务器,做一点配置,并启动ES进程合并到集群中;
分片机制提供更好的分布:将同一索引分为多个分片,这类似于HDFS的分块机制;分治可以提高处理效率,相信这是一个很大的优势,家里不陌生;
高可用性:很好提供一个复制机制,在这个机制中,可以为一个分区设置多个复制,这样当服务器停机时,集群仍然可以正常运行,并且由于服务器停机而丢失的复制将恢复到其他可用节点;这也类似于HDFS的复制机制(HDFS中的默认值是3个复制)当然,我们也应该知道它的缺点:
每个节点的一致性:它的默认机制是通过组播机制同步元数据信息。然而,在一个繁忙的集群中,每个节点的元数据不一致可能是由网络拥塞或节点处理能力饱和引起的,这就是所谓的大脑裂缝问题。这将使集群处于不一致的状态。目前,还没有一个完整的解决方案来解决这个问题,但是可以通过将工作节点和元数据节点分离来缓解这个问题。
没有详细的权限管理机制,也就是说没有mysql这样的不同用户,每个用户拥有不同的权限。结语:但是,从优缺点的比较来看,我认为还存在不足之处,值得一试。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。