首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Java

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

  •  
  •   cc959798 · 75 天前 · 725 次点击
    这是一个创建于 75 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 回复  |  直到 2018-07-13 07:43:51 +08:00
        1
    tamer   74 天前 via Android
    亿级流量网站架构核心技术,张开涛
        2
    yanaraika   74 天前
    8102 年了别手动 sharding 了,尝试下 TiDB 等 NewSQL 解决方案
        3
    my3157   74 天前   ♥ 2
    我的理解是关系型数据库, 可以试试以下两种方案

    增加硬件配置

    磁盘 HDD 换 SSD, 内存翻倍


    单点 ==> 集群

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


    单库 ==> 多库

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


    反正就是先别急着横向分表, 后续一大堆麻烦事, 不要轻易尝试, 建议先从以上三个方案着手
        4
    micean   74 天前
    得先从自身找原因吧
    慢是慢在哪
        5
    msg7086   74 天前
    也可以看看有些复杂的查询能不能让程序而不是数据库来解决。
    比如有些表连接就可以拆分成两个查询然后在程序端组装,这样可以减轻不少数据库上的压力。
        6
    limuyan44   74 天前 via Android
    先查业务,或者看能不能套个缓存,再加配置,加不了配置就加节点。还不行就换个程序员试试,
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2217 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 20ms · UTC 12:56 · PVG 20:56 · LAX 05:56 · JFK 08:56
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1