博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库优化之实例和故事
阅读量:4331 次
发布时间:2019-06-06

本文共 881 字,大约阅读时间需要 2 分钟。

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

一、合理时间备份数据

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

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

  方法:

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

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

 

二、避免对大表操作

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

  (1) 慢查询

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

  (2)大表对DDL操作

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

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

  方法:

  1. 分库分表

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

三、大事务

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

  (1)风险

   *  锁定太多数据,造成大量的阻塞

   *  回滚时间比较长

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

  (2)方法

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

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

 

作者:

出处:

交流沟通:QQ群866437035

版权所有,欢迎保留原文链接进行转载:)

转载于:https://www.cnblogs.com/mylly/p/8545957.html

你可能感兴趣的文章
web-4. 装饰页面的图像
查看>>
微信测试账户
查看>>
Android ListView上拉获取下一页
查看>>
算法练习题
查看>>
学习使用Django一 安装虚拟环境
查看>>
Hibernate视频学习笔记(8)Lazy策略
查看>>
CSS3 结构性伪类选择器(1)
查看>>
IOS 杂笔-14(被人遗忘的owner)
查看>>
自动测试用工具
查看>>
前端基础之BOM和DOM
查看>>
[T-ARA/筷子兄弟][Little Apple]
查看>>
编译Libgdiplus遇到的问题
查看>>
【NOIP 模拟赛】Evensgn 剪树枝 树形dp
查看>>
java学习笔记④MySql数据库--01/02 database table 数据的增删改
查看>>
两台电脑如何实现共享文件
查看>>
组合模式Composite
查看>>
程序员最想得到的十大证件,你最想得到哪个?
查看>>
我的第一篇CBBLOGS博客
查看>>
【MyBean调试笔记】接口的使用和清理
查看>>
07 js自定义函数
查看>>