# <center>merge表不可用的问题</center>
最近碰到了个很有意思的问题,值得一写
给merge表和基础表添加索引时发生了一个问题,不管是先给merge表加索引还是基础表加索引,如果表数据量大都会导致加索引期间对merge表的查询不可用,因为使用merge表必须保证merge表和基础表的表结构一致。因此需要给merge表加索引时,必须坐好评估,确定merge表和基础表的数据量,先给基础表加索引,再给merge表加索引,在加索引期间使业务避免访问merge表即可,等merge表加完索引即可使用merge表查询。4000w条数据一个表加完索引大约4个小时
关于merge表和基表的一些坑需要注意
删除索引
问题:
若先删除了基表的索引,再去删除merge表的索引会有如下报错,因为此时merge表和基表的表结构已经不一致了,merge表完全不可用了。
解决方法:
1、删除merge表,重建
2、把基表的索引重新加回来,然后再删除merge表的索引
产生影响:
如果数据量大的话一旦你删除索引顺序搞错,会导致线上严重的故障。使用第一种方法肯定会把原表删除,删除重建期间业务无法查询merge表,这种方法比较推荐,因为drop表再建表时间相对短一点;第二种方法给基表加索引的时间视数据量而定,4000w条数据4个小时,要是merge表引用的基表有几十个的话,基表重加索引需要几天,显然不可取。
要点:
先删merge索引再删基表索引添加索引
问题:
不管先给merge加索引还是先给基表加索引,在所有的表加索引期间都会导致对merge表的查询不可用
解决方法:
在加索引前对整个表进行评估,数据量大则通知开发加索引期间其他业务对merge表的查询不可用,让他们修改这方面的代码。等到基表和merge表的索引都添加完毕再恢复对merge表的查询。
mysql的文档写的更全
MERGE Table Problems
其中关于索引的一段
已经告诉你了必须保证基表和merge的表结构一致,因此添加索引导致不一致的解决方法也就很容易想到了,要么保持一致,要么删了重建
# <center>merge表不可用的问题</center>的更多相关文章
- mysql merge表介绍
在Mysql数据库中,Mysql Merge表有点类似于视图.下面就让我们来一起了解一下Mysql Merge表都有哪些优点,希望对您能有所帮助. Mysql Merge表的优点: A: 分离静态的和 ...
- mysql 创建merge表方便查询
SELECT COUNT(*) FROM `comment` SHOW CREATE TABLE `comment` CREATE TABLE `comment1` ( `id` ) NOT NULL ...
- face recognition[Euclidean-distance-based loss][Center Face]
本文来自<A Discriminative Feature Learning Approach for Deep Face Recognition>,时间线为2016年.采用的loss是C ...
- 通过merge语句完成表数据同步
此例中需要将center库中的tb_sys_sqlscripe表同步到branch,简单的语法如下: merge into tb_sys_sqlscripe@branch b using tb_s ...
- UVA 10585 Center of symmetry
题意:给出一个点集,问这个集合有没有中心点使点集对称,这个点可以是点集中的点也可以不是点集的点. 解法:一开始我枚举每两个点连线的中点……结果T了orz当时也不知道怎么想的…… 将点按横坐标排序,如果 ...
- 使用 Windows Media Center 远程控制
http://windows.microsoft.com/en-us/windows/getting-started-windows-media-center#getting-started-wind ...
- 使用 Media Center 遥控器(Windows Vista Premium)
本文适用于安装了 Windows Vista Premium 并附带遥控器的 HP 和 Compaq 台式电脑. 本文简要介绍了三种Windows Media Center 遥控器上每个按钮的功能. ...
- angular表单验证实例----可用的代码
前段时间,公司做一个单页面,就是一个表单验证,早开始在菜鸟教程上关注了angular,所以下派上用场了 angular里面对于表单验证,设置了很多指令. 也就是说不用自己写一些逻辑,直接绑定指令就行. ...
- [WPF] 使用 Visual Studio App Center 持续监视应用使用情况和问题
1. 什么是AppCenter Visual Studio App Center 是几个常见移动开发和云集成服务(如持续集成.持续交付和自动 UI 测试等服务)的集合. 这些 App Center 服 ...
随机推荐
- 高并发场景下System.currentTimeMillis()的性能优化
一.前言 System.currentTimeMillis()的调用比new一个普通对象要耗时的多(具体耗时高出多少我也不知道,不过听说在100倍左右),然而该方法又是一个常用方法, 有时不得不使用, ...
- IOS开发退出应用程序的代码
IOS 开发中.我知道的两个退出程序的方法: 1. exit(0); 2. if([[UIApplication sharedApplication] respondsToSelector:@sele ...
- drag-html
<!doctype html><html><head><meta charset="UTF-8" /><title>Ca ...
- Ubuntu 安装 spark
环境: Unbunt 12.04 Hadoop 2.2.x Sprak 0.9 Scala scala-2.9.0.final.tgz 步骤 1. 下载 scala 2. 解压scala,然后改动/e ...
- cocos2d-x-3.x bringToFront & sendToBack实现
void Node::bringToFront(void) { auto parent = this->getParent(); if (parent != nullptr && ...
- tcp ip协议笔记(1)——简单介绍
前言 本人记性不佳,看书健忘,以此笔记来记录看书后自己所知所想,已达到加深对tcp ip的理解.本笔记不过我看完书后自己所写的总结,权当是书后复习. 一.为什么会有tcp ip协议 ...
- Win7/Win2008下IIS配置Asp网站启用父路径的设置方法(已解决)
Win7/Win2008下IIS配置Asp网站启用父路径的设置方法(已解决) 在Win7/Win2008下IIS配置Asp网站启用父路径的设置方法与win2003下不同,看看下图就知道了.
- Python web 框架:web.py
web.py 是一个Python 的web 框架,它简单而且功能强大.web.py 是公开的,无论用于什么用途都是没有限 制的. web.py 安装: pip install web.py 下面开始我 ...
- MOS简介
功率半导体器件机能 MOS管(击穿原因),它采用“超级结”(Super-Junction)结构,故又称超结功率MOSFET.全数字控制是发展趋势,已经在很多功率变换设备中得到应用.既管理了对电网的谐波 ...
- sublime常用的插件
Sublime Text常用插件 1.Package Control 快捷键ctrl+~调出Sublime Text控制台,然后输入以下代码(Sublime Text3)安装Package Contr ...