WordPress如何分库?

论坛首页 论坛 寻求帮助 WordPress如何分库?

  • 该话题包含 3个回复,3 人参与,最后由孙锡源 更新于 2年前
正在查看 2 条回复
  • 作者
    帖子
    • #21496
      一点优化
      参与者
        @921988379
        楼主

        WordPress因为数据库查询入口单一,查询量过大时容易造成前后端卡顿,甚至404;传说分库可以解决这样的问题,请问怎么进行分库啊

      • #21499
        孙锡源
        管理员
          @ibadboy
          坏蛋的博客
          ibadboy.net

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

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

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

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

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

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

        • #21536
          蓝魔
          参与者
            @cgq630105023

            wordpress 数据库

            如文章ID  1-30000   用表wp_posts

            如文章ID  30000-60000   用表wp_posts1

            如文章ID  60000-90000   用表wp_posts2

             

            以此类推  怎么能实现

            • #21538
              孙锡源
              管理员
                @ibadboy
                坏蛋的博客
                ibadboy.net

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

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

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

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

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

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