秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:
文章回顾:
1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用
2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程
4: 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍URL如何定位到处理程序
5: 秋色园QBlog技术原理解析:Module之页面基类设计(五) --介绍创建基类和自定义生命周期
附章:
 
 
 
上节回顾:
介绍了 秋色园QBlog 在性能优化方面,为了避开缓存失效的空白期,特意使用静态化方式做为临时缓冲策略方案。
 
本节内容:
本节将介绍秋色园 QBlog 从另一个角度上的网站优化方式:数据库分表分库基础优化。
 
基础说明:
秋色园 QBlog 的优化工作,从一开始都是基于代码的技术优化方案,其中一个很大的原因:
就是秋色园 QBlog 一开始是寄放在朋友国外虚拟主机的子目录中,本人仅有ftp权限;
而操作一个正在运行的几百M的access数据库,实在不是件容易的事,所以优化工作只能在技术上寻求突破。
 
自从秋色园 QBlog 转移到VPS后,能从物理上操作access,优化可选方案也增多了一下,
因此稍为偏移了一下,把整体优化的压力,部分分担到了access数据库。
本节将介绍一个最开始的数据库优化方式:文章内容的分表及分库。
 
基础分析:
秋色园  QBlog  的access数据库之所以超过600M,是因为有大量的文章表Blog_Content 。
而文章表中占最多空间的,得属文章的内容了,本节将把它给抽出来。
 
我们看下原始的文章表数据结构的设计:
博客文章表:Blog_Content
字段:
ID  文章ID
Title 文章标题
Body 文章内容
Abstract 文章简介
...... 其它字段省略
 
这里有一个常规文章表的设计,就是文章的内容 Body 字段,通常是放在文章表中的。
 
而这个字段出现及使用是在什么情况?
出现1:后台发表或编辑文章时
出现2:查看文章。
从这里可以看出,涉及点并不多,很少,而且前台有静态页面顶着,基本除了发文章和编辑文章,这么大数据量的内容,几乎都不露面。
 
那文章表出现和使用又在什么情况下出现?
这个多的数不清,秋色园  QBlog 首页,用户博客首页,文章列表,文章档案,几乎每个页面,都会用到文章列表。
因此,将不常用的,又占有90%以上空间的文章内容  Body 字段独立出来,显得相当有必要。
 
于是进行分表:
多了一个Blog_ContentBody表:
字段,就两个:
ID:文章ID
Body:文章内容。
 
然而仅是进行分表,力度似乎不够。
 
于是再进行分库:
将Blog_ContentBody直接分到另一个access数据库中。
提示:最后发现,去除文章内容的数据库,仅剩下几十M,而文章内容,竟然占了500多M。
 
由此,秋色园 QBlog 从一个数据变成2个数据库了,数据库名称也变化了一下:
从myspace.mdb,更名为:
qblog.mdb 主数据库
qblogbody.mdb 文章内容数据库
 
当然,表分了,库也分了,代码不可能不跟进,技术手段也得跟着升级。
 
升级的实现与操作步骤:
 
1:分表分库,代码动改兼容升级
 
CYQ.Data 数据框架,自身已支持同时操作多个数据库,因此分库后,改动的代码量很少,主要改动点有:
1:删除Blog_Content表的Body枚举字段。
2:增加多数据库的枚举:
    public enum U_QBlogBodyEnum
    {
        Blog_ContentBody,
    }
然后数据库增加一个QBlogBodyConn的数据库链接即可。
3:发布编辑文章和显示文章,增加文章内容的独立操作函数。
 
代码改动很小,就是半小时以内完成的事情。
 
2:数据库分库步骤:
1:直接登陆vps服务器,使用了CYQ.DBImport,从原来的数据库中,将ID和Body字段导入到另一个数据库的表Blog_contentBody中。
2:打开原来的表Blog_Content,删除Body字段,然后压缩一下数据库,剩下20多M了。
3:直接升级dll到服务器中,整个的升级过程很迅速。
 
分离升级后,感觉秋色园 QBlog 的访问速度又刷刷的上去了。
 
总结:
至此,秋色园 QBlog  开始走进数据库优化及代码优化双重结合的整体策略方案,
只是,有一点还没改的,就是还一直纠结的使用access,别问我为啥不用mssql。
也许某天,Access它跑不动了,优化到顶了,其它数据库就上场了。
 



     本文转自cyq1162 51CTO博客,原文链接:http://blog.51cto.com/cyq1162/606977 ,如需转载请自行联系原作者



相关文章
|
2月前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
58 5
|
3月前
|
机器学习/深度学习 人工智能 算法
模型无关的局部解释(LIME)技术原理解析及多领域应用实践
在当前数据驱动的商业环境中,人工智能(AI)和机器学习(ML)已成为各行业决策的关键工具,但随之而来的是“黑盒”问题:模型内部机制难以理解,引发信任缺失、监管合规难题及伦理考量。LIME(局部可解释模型无关解释)应运而生,通过解析复杂模型的个别预测,提供清晰、可解释的结果。LIME由华盛顿大学的研究者于2016年提出,旨在解决AI模型的透明度问题。它具有模型无关性、直观解释和局部保真度等优点,在金融、医疗等领域广泛应用。LIME不仅帮助企业提升决策透明度,还促进了模型优化和监管合规,是实现可解释AI的重要工具。
152 9
|
5天前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5天前
|
机器学习/深度学习 传感器 人工智能
穹彻智能-上交大最新Nature子刊速递:解析深度学习驱动的视触觉动态重建方案
上海交大研究团队在Nature子刊发表论文,提出基于深度学习的视触觉动态重建方案,结合高密度可拉伸触觉手套与视觉-触觉联合学习框架,实现手部与物体间力量型交互的实时捕捉和重建。该方案包含1152个触觉感知单元,通过应变干扰抑制方法提高测量准确性,平均重建误差仅1.8厘米。实验结果显示,其在物体重建的准确性和鲁棒性方面优于现有方法,为虚拟现实、远程医疗等领域带来新突破。
43 32
|
2月前
|
供应链 安全 分布式数据库
探索区块链技术:从原理到应用的全面解析
【10月更文挑战第22天】 本文旨在深入浅出地探讨区块链技术,一种近年来引起广泛关注的分布式账本技术。我们将从区块链的基本概念入手,逐步深入到其工作原理、关键技术特点以及在金融、供应链管理等多个领域的实际应用案例。通过这篇文章,读者不仅能够理解区块链技术的核心价值和潜力,还能获得关于如何评估和选择适合自己需求的区块链解决方案的实用建议。
102 0
|
2月前
|
数据管理 Nacos 开发者
"Nacos架构深度解析:一篇文章带你掌握业务层四大核心功能,服务注册、配置管理、元数据与健康检查一网打尽!"
【10月更文挑战第23天】Nacos 是一个用于服务注册发现和配置管理的平台,支持动态服务发现、配置管理、元数据管理和健康检查。其业务层包括服务注册与发现、配置管理、元数据管理和健康检查四大核心功能。通过示例代码展示了如何在业务层中使用Nacos,帮助开发者构建高可用、动态扩展的微服务生态系统。
145 0
|
3月前
|
缓存 前端开发 JavaScript
Webpack技术深度解析:模块打包与性能优化
【10月更文挑战第13天】Webpack技术深度解析:模块打包与性能优化
|
4月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
183 0
|
5月前
|
开发者 图形学 UED
深度解析Unity游戏开发中的性能瓶颈与优化方案:从资源管理到代码执行,全方位提升你的游戏流畅度,让玩家体验飞跃性的顺滑——不止是技巧,更是艺术的追求
【8月更文挑战第31天】《Unity性能优化实战:让你的游戏流畅如飞》详细介绍了Unity游戏性能优化的关键技巧,涵盖资源管理、代码优化、场景管理和内存管理等方面。通过具体示例,如纹理打包、异步加载、协程使用及LOD技术,帮助开发者打造高效流畅的游戏体验。文中提供了实用代码片段,助力减少内存消耗、提升渲染效率,确保游戏运行丝滑顺畅。性能优化是一个持续过程,需不断测试调整以达最佳效果。
144 0
|
1天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
10 0

热门文章

最新文章

推荐镜像

更多