2022年分布式数据库拆分表常用的方法 .pdf
《2022年分布式数据库拆分表常用的方法 .pdf》由会员分享,可在线阅读,更多相关《2022年分布式数据库拆分表常用的方法 .pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、分布式数据库拆分表常用的方法在大容量,高负荷的 web系统中,对数据库进行一系列拆分,可有效提升数据库容量和性能。在初学程序的早期,程序员通常都喜欢按传统数据库设计模式,设计为单库和单一功能表的结构,这样的结构在数据量和并发量达到一定程度之后,会出现严重性能问题和维护问题。在出现问题的时候才着手进行优化,会非常痛苦,所以应该在系统架设之初就考虑好之后会出现的问题。目前有些数据库策略是采用单库结构,然后通过同步分发到数台服务器实现读写分离。个人觉得这样的策略非常笨拙,还是想办法将其分隔开来好,否则每台机器的内存都很容易超支。一般只对数据量比较大的表进行拆分,这应该没有什么异议;还有一种是有可能会
2、进行维护的比较重要的表,比如文章目录表,如果有从其它系统倒数据进来的可能的话,也要拆掉,不然倒数据时一不小心把目录表弄坏了,发现忘了备份,那真是欲哭无泪。下面来分析一下:一、时间结构如果业务系统对时效性较高,比如新闻发布系统的文章表,可以把数据库设计成时间结构,按时间分有几种结构:1)平板式表类似:article_200901 article_200902 article_200903 用年来分还是用月可自定,但用日期的话表就太多了,也没这必要。一般建议是按月分就可以。这种分法,其难处在于,假设我要列20条数据,结果这三张表里都有2条,那么业务上很有可能要求读三次表。如果时间长了,有几十张表,
3、而每张表是0条,那不就是要读完整个系统的表才行么?另外这个结构,要作分页是比较难实现的。主键:在这个系统中,主键是13位带毫秒的时间戳,不要用自动编号,否则难以通过主键定位到表,也可以在查询时带上时间,但比较烦琐。2)归档式表类似:article_old article_new 为了解决平板式的缺点,可以采用时间归档式设计,可以看到这个系统只有两张表。一张是旧文章表,一张是新文章表,新文章表放 2个月的信息,每天定期把 2个月中的最早一天的文章归入旧表中。这样一方面可以解决性能问题,因为一般新闻发布系统读取的都是新的内容,旧的内容读取少;第二可以委婉地解决功能问题,比如平板式所说的问题,在归档
4、式中最多也只需要读2张表就完成了。归档式的缺点在于旧表容量还是相对比较大,如果业务允许,可对旧表中的超旧内容进名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 3 页 -行再归档或直接清理掉。二、版块结构如果按照文章的所属版块进行拆表,比如新闻、体育版块拆表,一方面可以使每个表数据量分离,另一方面是各版块之间相互影响可降到最低。假如新闻版块的数据表损坏或需要维护,并不会影响到体育版块的正常工作,从而降低了风险。版块结构同时常用于bbs 这样的系统。板块结构也有几种分法:1)对应式对于版块数量不多,而且较为固定的形式,就直接对应就好。比如新闻版块,可以分出新闻的目录表,新闻的文章表等
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年分布式数据库拆分表常用的方法 2022 年分 数据库 拆分 常用 方法
限制150内