数据库优化之实例和故事

简要:每一项技术都离不开数据库,数据库犹如人的大脑;密不可分,一旦出了问题(故障),停顿,卡主后果可想而知;我(fudomine)潜心学习数据库优化3个月,现在将学到的经验分享给大家,希望能够跟各位PHP大神分享和学习探索,如果有不对或者好的建议告知下;*~*!

一、合理时间备份数据

备份数据,是每个项目维护的日常工作;有利于数据在系统遭受破坏或其他特定情况下,重新加以利用的一个过程;项目的备份时间,大都是根据项目需求来决定,比如:每小时,指定时间等;

案例:  某个项目正进行大型活动,数据库由于巨大用户量的访问以及定时备份;造成带宽出现峰值,大量执行操作处于队列状态,致使数据库停止工作;

方法:

1. 若拓扑结构单一结构(单台数据库),停止定时任务(备份);

2. 若拓扑结构非单一结构(主从/分布式),可停止定时任务;或主(数据库)放弃执行定时任务,从(数据库)执行;

二、避免对大表操作

 何谓大表,是指记录行数巨大,单标超过千万行;表数据文件巨大,表数据文件超过10G;

(1) 慢查询**很难在一定时间内过滤出所需要的数据,原因:来源少->区分度低->大量磁盘IO->降低磁盘效率->大量慢查询

(2)大表对DDL操作

     - 建立索引需要很长的时间,过程可能会造成:主从延迟、锁表甚至于造成死锁

     - 修改表结构需要长时间锁表,过程可能会造成:主从延迟,锁表,阻塞

方法:

1. 分库分表

2. 数据归档:减少前后端业务影响

大事务

 大事务,运行时间比较长,操作的数据比较多的事务

(1)风险

* 锁定太多数据,造成大量的阻塞* 回滚时间比较长

* 执行时间长,容易造成主从延迟

(2)方法

 *  避免一次处理太多的数据(增删改查)

 * 移除不必要在事务中的select操作

作者:不动峰

出处:http://www.jianshu.com/users/c0abc9c5f51e/latest_articles

博客园:http://www.cnblogs.com/mylly/

备注:现承接企业大型网站/接口/微信公众号/企业号/小程序,有意向的朋友请联系(QQ:857280707)  版权所有,欢迎保留原文链接进行转载:)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容