位置: 编程技术 - 正文

MySQL中修改表结构时需要注意的一些地方(mysql修改表结构的命令)

编辑:rootadmin

推荐整理分享MySQL中修改表结构时需要注意的一些地方(mysql修改表结构的命令),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql修改表结构的命令,mysql修改表结构的命令,mysql中修改表结构的语句,mysql中修改表结构的命令是,mysql中修改表结构,mysql中修改表结构的关键字是,Mysql中修改表结构的时候那个效率高,mysql中修改表结构的命令是,内容如对您有帮助,希望把文章链接给更多的朋友!

MySql 在修改表结构的时候可能会中断产品的正常运行影响用户体验,甚至更坏的结果,丢失数据。不是所有的数据库管理员、程序员、系统管理员都非常了解Mysql能避免这种情况。DBA会经常碰到这种生产中断的情况,当升级脚本修改了应用层和数据库层,或者缺乏经验的管理员、开发在不是很了解Mysql内部工作机制的情况下修改了规范文件。

真相是:

直接修改表结构的过程中会锁表(在5.6版本之前) 在线的数据定义语言在5.6版本不总是在线的而且也会锁表 就算使用Percona工具包(在线修改定义文件)也会有若干个步骤会锁表

Percona MySQL 服务器开发团队鼓励用户在计划或者执行数据库迁移的时候先和我们沟通。我们的目标是基于用户给出的各种情况给出最佳的方案。旨在避免锁表当用户对非常大的表执行DDL,以确保应用能像平常一样正常运行,同时也在努力改善响应时间或增加系统功能。最差的情况是确保那些经不起当机的系统在黄金交易时间正常运行。

我们使用的大多数安装包仍然小于Mysql5.6,这需要我们不停尝试新的安装环境来把数据库迁移造成的损失降到最低。这可能需要一个能“在线修改规范定义文件”的工具来升级或者修改规范文件。Mysql5.6解决这一问题的做法是通过减少重建表和锁表的场景,但这个方法不能覆盖所有的可能的操作,例如当修改一列的数据类型时必然需要全表重构。Przemys&#;aw和 Malkowski在去年尽可能详尽的讨论了Mysql5.6运行中修改定义。

随着 MySQL 5.7的新功能, 我们寻求不会锁表的DDL操作 例如; 表优化 和 索引重命名. (More info)

对于Mysql5.6的用户,最好的建议是回顾一下数矩阵来熟悉在MYSQL之外执行定义的更改,好消息是我们很擅长解决这一问题。

说实话,锁表操作会经常被忽视,在操作M大小的表时我们更倾向于直接修改,但是G,G的表就要考虑一下了。当使用率不高或者对锁定时间要求不是很高的的系统来说直接操作也许更好。可是,我们常常会遇到一个需要立即执行的SQL,或者因为性能问题需要紧急增加一个索引来减少加载时间。

是否需要在系统在线期修改表定义

上面提到,在线修改表定义是工作流中的一个模块。通常是不错的解决方案,但也会遇到不能使用的场合,例如:当某个表使用了触发器。了解pt-osc在我们项目中的工作过程很重要,让我们来看一下源代码:

我把上面第三步到第五步高亮出来,这是锁表可能引起系统停机的时间。但步骤六设计外键更新是一个循环的操作,是避免在更新关系的时候隐含地重建表。有很多方法可以确保表的完整性约束,在pt-osc的说明文档中详细说明了,在开始之前预览你的表结构包括约束,并知道怎样把修改表定义所造成的影响降到最低。

MySQL中修改表结构时需要注意的一些地方(mysql修改表结构的命令)

最近,我们通知了一个拥有高并发高事务量系统的用户运行pt-osc在大型数据表上。这件事对于他们来说很平常,几小时后我们的客服被告知该客户遇到了最大连接数超过的问题。这个问题是如何产生的呢?当pt-osc运行到步骤五的时候会尝试去锁定数据并重命名原表和隐藏表,然而这不会在开启事务的时候立即执行,因此这条线程会被排在重命名后面。这表现在用户应用上就是系统停机。数据库无法开启新的连接并且所有的线程都被阻塞在重命名命令之后。

5.5.3版本的说明,当开启一个事务时会锁定它会用到的所有表的数据(不依赖于存储引擎),并在事务提交的时候释放锁。这样做确保了在开启事务期间不能修改表的定义。

长远来看我们可以采用一些新的技术来避免这种情况,例如non-default pt-osc的选项,换言之就是不会删除原表把数据换到新表。这种联合脱离了隐藏表和触发器,我们应该鼓励将重命名操作变得原子化。

校订:2.2版本的percona工具新增了一个变量?tries 和变量?set-vars 共同被部署,解决了各种pt-osc操作可能会锁表的情况。pt-osc (?set-vars)默认会设置如下的会话变量当连接到数据库服务器的时候。

当使用 ?tries 我们可以颗粒化地鉴别操作,尝试次数、在尝试的间隔等待。这种组合可以确保pt-osc在合适的时机杀掉自己的等待会话进程,确保线程堆栈的空闲,并提供给我们循环操作来获取管理因触发器、重命名、修改外键而造成的锁。

说明文档在这里 -大多数情况下pt-osc正是我们所需要的 -在很多案例中pt-osc是需要的,但是用法需要稍作调整 -在少数情况下pt-osc不是很合适,我们需要考虑本地阻塞修改,或者采用转移的操作改成在副本集中复制。

浅谈InnoDB隔离模式的使用对MySQL性能造成的影响 在这篇文章里我将讨论一个相关的主题?InnoDB事务隔离模式,还有它们与MVCC(多版本并发控制)的关系,以及它们是如何影响MySQL性能的。MySQL手册提供

使用cgroups来限制MySQL企业备份服务对资源的占用 今天我遇到一个问题,MySQL企业版备份引起I/O子系统负载过大,应用响应缓慢,导致系统不可用。所以我想限制mysqlbackup的进程,使它不会引起更多的问

大幅提升MySQL中InnoDB的全表扫描速度的方法 在InnoDB中更加快速的全表扫描一般来讲,大多数应用查询的时候都会用索引,查找很少的几行数据(主键查找或百行内的查询),但有时候我们需要全表

标签: mysql修改表结构的命令

本文链接地址:https://www.jiuchutong.com/biancheng/347639.html 转载请保留说明!

上一篇:使用FriendFeed来提升MySQL性能的方法(friend怎么用)

下一篇:浅谈InnoDB隔离模式的使用对MySQL性能造成的影响(隔离模块与隔离模块如何连接?)

  • 免税苗木普通发票
  • 工会经费计税
  • 企业支付宝买东西
  • 家属机票怎么办理
  • 其他应付款太多怎么做账务处理
  • 赠送的商品怎么缴纳增值税
  • 国外租赁行业都包括哪些
  • 出口退税会计处理全部流程
  • 个体户如何做零申报
  • 付佣金给客户怎么做分录?
  • 微信支付工资怎么做账
  • 城建税本月计提下月缴纳怎么算
  • 企业案例描述
  • 销售退货成本如何计算
  • 冲红发票还能二次冲红吗
  • 增值税申报尾差怎么做账
  • 企业牌照拍卖收入计入什么科目
  • 年金的缴费基数
  • 公司买回来做样衣的服装怎么做会计分录?
  • 企业间拆借应收利息记哪个科目?
  • 软件开发开增票几个点
  • 进项税额能抵扣的几种情形
  • 租金不开专票合理吗
  • mac怎么还原出厂设置
  • 收到其他公司的投资款计入什么科目
  • 苹果电脑屏幕键盘怎么去除
  • 预缴附加税款会退税吗
  • win10组策略编辑器打不开怎么办
  • 收到服务费发票怎么做账务处理
  • 存货报废的税务处理及会计处理
  • 转让股权怎么做分录
  • PHP:mcrypt_get_block_size()的用法_Mcrypt函数
  • PHP:mcrypt_generic_end()的用法_Mcrypt函数
  • PHP:imagecolorexactalpha()的用法_GD库图像处理函数
  • vite + vue + ts 自动按需导入 Element Plus组件,并如何解决按需引入后ElMessage与ElLoading 的问题(找不到名称“ElMessage”问题。)
  • php的图片
  • 购进农产品增值税进项税额的确认方法
  • 其他应付款清账
  • 印花税应计入什么
  • 存续分立会计处理原则
  • php中的this
  • 通行费电子发票平台
  • 申报完清卡是什么意思
  • 小规模纳税人跨区域预缴增值税
  • phpcms默认密码
  • 建筑企业开票都要交税吗
  • php怎么连接sqlserver
  • 消费税和购置税系重复征税
  • 利润敏感性分析法可以帮助企业有哪些决策?
  • 为在建工程发生的差旅费
  • 开银行承兑汇票需要多少保证金
  • 收到对方开的红字发票怎么做账
  • 支付土地租金计入什么科目里面
  • 意外伤害条件
  • 根据《增值税暂行条例》的规定,适用9
  • 库存商品账务没做如何调增
  • 新装mysql设置密码
  • win10系统如何添加隐藏wifi
  • win10访问局域网电脑需要用户名和密码
  • win7电脑蓝牙图标怎么弄出来
  • linux做网卡绑定
  • vim编辑器命令大全
  • win7禁用开机启动服务
  • 电脑windows7打不开怎么办
  • Win7系统可以装ie10浏览器么
  • win10输入法怎么添加美式键盘
  • 微信公众号javascript
  • node.js 模块
  • shell脚本获取本地ip
  • python模板引擎开发
  • js会话
  • [置顶]马粥街残酷史
  • Python通过行和列提取数据
  • 天津市国税局网站
  • 对税务稽查工作的意见和建议
  • 怎么在年报查询个人信息
  • 青海的医疗保险费是多少钱
  • 个人所得税申报是什么意思
  • 电子税务局登录入口
  • 外汇管理数字外管平台怎么登录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设