简要:每一项技术都离不开数据库,数据库犹如人的大脑;密不可分,一旦出了问题(故障),停顿,卡主后果可想而知;潜心学习数据库优化 3 个月,现在将学到的经验分享给大家,希望能够跟各位 PHP 大神分享和学习探索,如果有不对或者好的建议告知下;~! 一、合理时间备份数据 备份数据,是每个项目维护的日常工作;有利于数据在系统 ..

数据库优化之实例和故事

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

一、合理时间备份数据

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

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

 方法:

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

###二、避免对大表操作

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

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

(2)大表对 DDL 操作

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

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

方法:
 1. 分库分表
 2. 数据归档:减少前后端业务影响

大事务

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

(1)风险

(2)方法

  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    434 引用 • 468 回帖 • 895 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    235 引用 • 528 回帖
  • 优化

    过早的优化是万恶之源。

    过度优化实则是劣化。

    26 引用 • 160 回帖
回帖   
请输入回帖内容...