网络编程
位置:首页>> 网络编程>> 数据库>> MySQL数据库生产环境的维护工作总结的经验

MySQL数据库生产环境的维护工作总结的经验

  发布时间:2011-12-01 10:20:52 

标签:mysql,数据库

  从过往MySQL数据库生产环境的维护工作中,总结的一些小经验和知识,未必有多深奥,但是对我们消除隐患,确保MySQL数据库生产环境四个9的作用非常有效之一的手段,运维人员要非常注意细节,尽量减低故障发生的概率。

  (一) DML语句书写建议

  (1). DML语句不允许出现@number方式替代字段名称

  不合理的写法:

  UPDATE table_name SET @1=NOW() WHERE @2=1;

  正确的写法:

  UPDATE table_name SET column_name1=NOW() WHERE column_name2=1;

  (2). UPDATE OR DELETE 禁用LIMIT子句

  不合理的写法:

  UPDATE table_name SET column_name1=NOW() WHERE column_name2=1 LIMIT 1;

  正确的写法:

  UPDATE table_name SET column_name1=NOW() WHERE column_name2=1;

  (3). INSERT语句需要写清楚值和字段对应关系

  不合理的写法:

  INSERT INTO table_name VALUES(NOW(),DATE_ADD(NOW(),INTERVAL +1 DAY));

  正确的写法:

  INSERT INTO table_name(gmt_create,gmt_modify) VALUES(NOW(),DATE_ADD(NOW(),INTERVAL +1 DAY));

  (4). DML语句少用不确定性函数

  常见被大家使用的不确定性函数:UUID()、RAND()、SYSDATE()等函数,若无特殊用处之外,请以确定性函数替代之。

  推荐阅读的技术文章:曾用于内部培训的PPT内容:MySQL开发规范与实用技术交流

  (二) 大数据量的DELETE OR UPDATE

  可能出于某些原因和运营目的,需要对数据库中的数据进行大量的清理或更改某字段的值,分别举 二个示例:

  ① 网络专项整治的时期,需要删除大量含某些关键词的内容;

  ② 给符合某一条件(例如:等级,在线时长)的游戏玩家,赠送100~1000不等数量的游戏币;

  给出的2个数据修改需求示例,若是直接根据相关要求去做,一个是需要用到模糊查询,另一个数据更新条件也没有合理索引可用,为此可能造成表对象表级锁被长时间锁住,而且阻塞其他更改类型数据操作服务,所以我们不得不采用更合理的办法,建议如下步骤实施:

  ① 设计并创建一张表tmp_pk_data ,用于记录将要被修改记录的主键,及需要的相关信息;

  ② 优先考虑在备库上跑一条SQL命令或存储过程的方式,把主键及相关数据写到表tmp_pk_data中;

  ③ 编写一个存储过程,使用游标循环控制获得tmp_pd_data的信息,根据主键更新或删除目标表的数据,且建议此操作在备库上完成(注释:必须是双主复制模式,才可在备库上执行);

  (三) 定期规律性清理数据的DELETE

  定期规律性数据的清理,优先对目标表的数据操纵方式进行分类:

  ① 若是日志类型的数据,则完全可以改为借助分区表的方式,比如按日期删除数据的条件,则可以用日期作为数据分区条件,然后增删分区的方式实现数据的清理工作;

  ② 若是数据的UPDATE/DELETE/SELECT操纵条件,与定期清理数据的规则一致或被其包含,则可以考虑使用分区表,然后借助删除分区方式达到数据清理的目标;

  ③ 若不能使用分区表解决的,则可以考虑参考上章节介绍的“大数据量的DELETE OR UPDATE”内容;

  (四) M-M架构的大数据量DML技巧

  定期规律性数据的清理,优先对目标表的数据操纵方式进行分类:

  ① 若是日志类型的数据,则完全可以改为借助分区表的方式,比如按日期删除数据的条件,则可以用日期作为数据分区条件,然后增删分区的方式实现数据的清理工作;

  ② 若是数据的UPDATE/DELETE/SELECT操纵条件,与定期清理数据的规则一致或被其包含,则可以考虑使用分区表,然后借助删除分区方式达到数据清理的目标;

  ③ 若不能使用分区表解决的,则可以考虑参考上章节介绍的“大数据量的DELETE OR UPDATE”内容;


0
投稿

猜你喜欢

  • 匹配中文字符的正则表达式: [\u4e00-\u9fa5]匹配双字节字符(包括汉字在内):[^\x00-\xff]应用:计算字符串的长度(一
  • 目前,保护数据免受未授权用户的侵犯是系统管理员特别关心的问题。如果你现在用的是MySQL,就可以使用一些方便的功能来保护系统,来大大减少机密
  • Css tranistions允许元素的属性在单位时间内发生平滑的过渡,在阅读完《CSS Transitions Module Level
  • 在开发和调试基于XML的应用的时候,程序员往往为找不到合适的快速桌面XPATH测试软件发愁。诚然,市面上有成套的XML编辑软件,但是它们往往
  • 本文列出了初学网页编程中常用到的一些代码和一些技巧,简单实用,您一定用得到。1、oncontextmenu="window.eve
  • 以下效率,是奔腾 dual1.6G HZ,1G内存电脑,ie6.0下toggle()与slideToggle("fast"
  • 我想把本篇作为css基础教程的序曲,从今天开始翻译和整理我从设计网页以来所学到的css基础知识。本教程会分成N个部分,单独发表,其间可能会插
  • 今天我们整理了ip地址和身份证的javascript验证方法。虽然ip地址和身份证的验证不是很经常会遇到,但是大家也可以研究一下js代码,里
  • 看到这个需求的时候就在暗爽,又可以搞定一个知识点了。哈哈,一天的奋斗之后,果然有所收获,而且经过怿飞的指点,在跨域问题解决上还有所突破(不通
  • 先简单说一下MP3的ID3 标记,因为主要是操作这个玩意MP3最开始的时候没有我们今天看到的那样,有歌手、年代,专集等等信息只有一些简单的参
  • 如何远程读取数据库页面?见下:<%Set HttpObj = Server.CreateObject(&
  • 在用HTML(HyperText Markup Language,超文本链接标示语言)语言编写Web页面时,由于所用的Web浏览器对HTML
  • 首先你要确定错误的原因: 让IE显示详细的出错信息: 菜单--工具--Internet选项--高级--显示友好的HTTP错误信息,去掉这个选
  • 当然如果想了解更多编辑器的原理制作方法,只有你自己去下载一个在线编辑器,慢慢研究,相信会有更多的收获!HTML在线编辑器的基本概念1,什么是
  • 视觉设计是什么,人们怎么认为它的,自己又是怎么对待和理解它,它的核心价值是什么。视觉设计,冒似很艺术,跟艺术相关的职业,给大多数人的印象是做
  • 一旦你已经为MySQL实例管理器设置了一个密码文件并且IM正在运行,你可以连接它。你可以使用mysql客户端工具通过标准MySQL API来
  • 概要:本文主要描述XHTML中相对定位和绝对定位各自的本质、用法、区别和两者之间的关系。以及使用CSS的Left、Right、Top、Bot
  • 此文译自Fred Wilson 2010年2月在迈阿密举行的Web未来应用的年会上的演讲谢谢青云推荐了这篇这么好的演说谢谢卓和百忙中抽空帮我
  • 学习一些你已经知道的知识也没有什么坏处,是吧?我知道这可能并不一定非常有意义,但是很多时候我们往往知其然而不知其所以然,这会使得事情出现惊人
  • 很多人说设计是力求细节的,在网页设计里表达出的细节就是图标。图标在一个设计里带来了额外的注解并且使设计里的对象和元素引起用户的注意。以下介绍
手机版 网络编程 asp之家 www.aspxhome.com