平台开发中,欢迎参与测试。你可以在 QQ群:1046115671 中与我们交流,或是直接在社区发帖。
  • 孙锡源
    管理员

    如果你面临的问题是数据量大而不是查询负载大,则是需要分区或分表而不是分库。

    相较于分表,分区更简单,建议先尝试分区,所以不行,再使用分表。

    不过因为你没有给出慢查询以及数据库每个表数据量的详细信息,所以我没办法给出具体建议。

    你可以参考 MySQL 官方文档进行配置:

    https://dev.mysql.com/doc/refman/8.0/en/partitioning-management-range-list.html

    或者补全信息,我可以帮你分析一下如何配置。

  • 蓝魔蓝魔
    参与者
    蓝魔蓝魔
    参与者
    蓝魔
    参与者

    wordpress 数据库

    如文章ID  1-30000   用表wp_posts

    如文章ID  30000-60000   用表wp_posts1

    如文章ID  60000-90000   用表wp_posts2

     

    以此类推  怎么能实现

    • 孙锡源
      管理员

      Cravatar 的 qq 邮箱 HASH 表是采用的这种分表模式,但这种模式需要根据业务定制开发,目前没检索到有现成的插件可以直接支持这样干。

      通常的做法是重写 wpdb 来实现。对于涉及到数据列表展现、数据搜索的需求,则使用 ES 实现,而 ES 自带切片和集群化的功能,不会受数据量影响。

      但就像前面说的,这需要根据业务定制开发,因为你所用的插件主题的代码是不可控的,一套通用的分表算法很难对此兼顾。

      比较好的方案就是前面提到的 MySQL 自带的分区方案。对于分库,WordPress 有现成的解决方案:HyperDB,这个插件是帮你做数据库负载均衡的,你可以设置一个写库和多个读库,宝塔我没记错的话带了数据库主从复制功能,这俩可以配合用。

      未来 LitePress.cn 的数据承载量达到极限的话我们会进行相关的开发,到时候可以把代码共享出来,但是不一定适合你的业务,大概率是需要再根据你自己的业务来定制的。

  • 正在查看 2 条回复
    • 哎呀,回复话题必需登录。