请问单个数据库不能支持服务后怎样解决呢?

2018-07-12 20:18:22 +08:00
 cc959798

常见的是分库分表 分表有什么常见的解决方案? 分库的话怎样解决查询问题?

2013 次点击
所在节点    Java
6 条回复
tamer
2018-07-12 22:56:00 +08:00
亿级流量网站架构核心技术,张开涛
yanaraika
2018-07-12 22:59:43 +08:00
8102 年了别手动 sharding 了,尝试下 TiDB 等 NewSQL 解决方案
my3157
2018-07-12 23:02:57 +08:00
我的理解是关系型数据库, 可以试试以下两种方案

增加硬件配置

磁盘 HDD 换 SSD, 内存翻倍


单点 ==> 集群

以 mysql 为例, 有很多集群解决方案, 各种云厂商也有云服务, 推荐两种, 一种是 mysql 原生的集群, 主从集群, 同步或异步复制, 可以读写分离提高性能, 不过 client 得做相应的处理, 大多数 client 应该都是支持的, 或者采用 percona cluster, 多主, 也非常成熟, 客户端不用做任何处理


单库 ==> 多库

先把表分下类, 放到几个单独的数据库, 分类的时候注意, 关联性比较强的, 比如需要做关联查询的可以放一个库,


反正就是先别急着横向分表, 后续一大堆麻烦事, 不要轻易尝试, 建议先从以上三个方案着手
micean
2018-07-12 23:15:38 +08:00
得先从自身找原因吧
慢是慢在哪
msg7086
2018-07-13 07:21:47 +08:00
也可以看看有些复杂的查询能不能让程序而不是数据库来解决。
比如有些表连接就可以拆分成两个查询然后在程序端组装,这样可以减轻不少数据库上的压力。
limuyan44
2018-07-13 07:43:51 +08:00
先查业务,或者看能不能套个缓存,再加配置,加不了配置就加节点。还不行就换个程序员试试,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/470337

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX