迅睿CMS免费开源框架
免费开源CMS
  • 首页
  • 产品动态
    • 官方公告
    • 功能介绍
    • 疑难解答
  • 产品及解决方案
    迅睿建站程序

    迅睿CMS框架是一款PHP8高性能·简单易用的CMS开源开发框架,基于MIT开源许可协议发布,免费且不限制商业使用,是免费开源的产品,以万端互联为设计理念,支持的微信公众号、小程序、APP客户端、移动端网站、PC网站等多终端式管理系统。

    迅睿CMS产品
    迅睿建站系统
    安全加固系统
    国产化数据库
    小程序开发
    版本更新日志
    捐赠迅睿团队
    迅睿服务方案
    迅睿授权套餐
    网站服务套餐
    OEM版权套餐
    迅睿售后服务
    网站安全部署
    网站故障修复
    网站漏洞修补
    木马清理服务
    电商解决方案
    多用户商城方案
    供应链商城方案
    分销商城方案
    SAAS商城方案
    拼团/竞拍商城方案
    跨境电商方案
    品牌内购解决方案
    福利商城解决方案
    企业订货系统解决方案
    个性化定制方案
    知识付费解决方案
    企业官网设计方案
    行业网站设计方案
    APP小程序设计方案
  • 应用市场
    • 应用插件
    • 模板界面
    • 小程序
  • 源码下载
  • 开发服务
    • 开发服务
    • 提交需求
    • 官方服务
    • 开发报价
    • 开发者中心
  • 技术支持
  • 帮助文档
    • 新手学习合集
    • 视频教程讲解

    • 新手入门指南
    • 后台操作教程
    • 二次开发文档
    • 插件开发文档
    • 模板制作教程
    • API接口开发
    • 插件使用教程
    • 常见问题汇总

    • 模板标签生成器
    • 自定义字段调用
    • API接口测试工具
  • 控制台

CMS内容数据分表储存方案

2023-04-20 09:09:36 功能介绍 0

通常情况下,MySQL在单表数据超过100万,执行效率开始变慢,需要根据业务量进行硬件升级和数据库优化,而数据库优化主要包括:表结构优化、索引优化、SQL语句优化、分区储存、分表存储等等,本文专门来介绍数据库优化之一的分表储存优化。

分表储存,如果一张表中的数据可以分为多种不同的类型,并且对不同类型的数据同时操作的场景不多时,可以考虑把不同类型的数据保存在不同的表中。或者可以将一个大表拆分成多个小表,从而减小锁的粒度。比如某个表的访问频率很高,某个写操作只更改个别列的数据,而其他未被修改的列可能被别的查询请求访问,这时就可以通过分表来提高查询效率。

大部分cms程序都会把内容数据压缩到一张表中,如下图结构:

image

所有的内容都储存在这种表中,当数据量达到上百万以后,查询速度就会延迟。


分表储存方案


一、按内容模块储存数据

迅睿内容模块原理是按不同类型的数据创建,比如文章模块、图集模块、商品模块,这些模块的内容表都是分开储存的,如下图结构:

image

image

image

这样可以将网站的数据合理的按储存类别进行规划创建模块,独立模块更加有利于大数据储存。


二、按栏目进行主表分表储存(VIP支持)

image

按栏目作为分表,比如网站数据量有100w,按5个栏目分表,平均每个栏目储存20w数据,前端查询时在20w数据就比查询100w数据快很多。

配合(一)多模块+栏目分表可以大大提示储存效率。


三、内容附表无限分表

image

模块附表字段储存,通常情况下会把一些不用于列表显示的字段储存到data表,这样可以减轻查询表的字段负担,data表将按10w数据基数进行无限分表储存。




上一篇:自定义后台UI界面
下一篇:没有了

Copyright © 四川迅睿云软件开发有限公司

蜀ICP备19023384号
川公网安备 51010602001037号
增值电信业务经营许可证:川B2-20211858