掌柜面露凶相,三眼吓得双腿一软跪在地上,磕头如捣蒜,“掌柜待我恩重如山,三眼只求能够做牛做马好好报答。”

恢复先天至宝之后更是恐怖,只是准圣大圆满只剩下元神的太一面对弑神枪一击但是伤的不能再伤。

骑手一天要上多少小时才能赚一万

太子府,哀声一片,蓝玉身死消息传来,太子妃哭成泪人,朱标坐在一旁唉声叹气,剩下的太子亲信同样面色阴沉,不管如何,蓝玉始终属于太子一党,蓝玉一死,太子这边实力大大削弱,下一个能够得到皇上信任统兵之人是谁变得尤为重要。
裴?F默而不语,自从李砚去世后,他的名额便由新任刑部尚书李麟继任,李麟和李砚一样,也是宗室,他的资格更老,早在天宝八年便出任兵部侍郎,他本来属于保皇派,也就是忠于皇帝李适,但他进入政事堂后不久,便倒戈为监国党,改为支持李亨了。

五十级,还是三个五十级……,其余全部四十五级以上,这意味着什么?

MySQL--如何快速对比数据


在MySQL运维中,研发同事想对比下两个不同实例上的数据并找出差异,除主键外还需要对比每一个字段,如何做呢?

第一种方案,写程序将两个实例上的每一行数据取出来进行对比,理论可行,但是对比时间较长。

第二种方案,对每一行数据所有字段合并起来,取checksum值,再按照checksum值对比,看着可行,尝试下。

首先要合并所有字段的值,选用MySQL提供的CONCAT函数,如果CONCAT函数中包含NULL值,会导致最终结果为NULL,因此需要使用IFNULL函数来替换NULL值,如:

CONCAT(IFNULL(C1,""),IFNULL(C2,""))

加入表有很多行,手动拼个脚本比较累,别急,可以使用information_schema.COLUMNS来处理:

## 获取列名的拼接串
SELECT
GROUP_CONCAT("IFNULL(",COLUMN_NAME,","""")")
FROM information_schema.COLUMNS 
WHERE TABLE_NAME="table_name";

假设我们有测试表:

CREATE TABLE t_test01
(
    id INT AUTO_INCREMENT PRIMARY KEY,
    C1 INT,
    C2 INT
)

我们便可以拼接出下面的SQL:

SELECT
id,
MD5(CONCAT(
IFNULL(id,""),
IFNULL(c1,""),
IFNULL(c2,""),
)) AS md5_value
FROM t_test01

在两个实例上执行下,然后把结果使用beyond compare对比下,就很容易找出不相同的行以及主键ID

对于数据量较大的表,执行出来的结果集也很大,对比起来比较费劲,那就先尝试缩小结果集,可以将多行记录的md5值合并起来求MD5值,如果最后MD5值相同,则这些行相同,如果不同,则证明存在差异,再按照这些行进行逐行对比。

假设我们按照1000行一组来进行对比,如果需要将分组后的结果合并,需要使用GROUP_CONCAT函数,注意在GROUP_CONCAT函数中添加排序保证合并数据的顺序, SQL如下:

SELECT
min(id) as min_id,
max(id) as max_id,
count(1) as row_count,
MD5(GROUP_CONCAT(
MD5(CONCAT(
IFNULL(id,""),
IFNULL(c1,""),
IFNULL(c2,""),
)) ORDER BY id
))AS md5_value
FROM t_test01
GROUP BY (id div 1000)

执行结果为:

min_id    max_id    row_count    md5_value
0        999        1000         7d49def23611f610849ef559677fec0c
1000     1999       1000         95d61931aa5d3b48f1e38b3550daee08
2000     2999       1000         b02612548fae8a4455418365b3ae611a
3000     3999       1000         fe798602ab9dd1c69b36a0da568b6dbb 

当差异数据较少时,即使需要对比上千万数据,我们可以轻松根据根据min_id和max_id来快速定位到哪1000条数据里存在差异,再进行逐行MD5值对比,最终找到差异行。

最终对比图:

##=====================================================================##

PS:

在使用GROUP_CONCAT时,需要配置MySQL变量group_concat_max_len,默认值为1024,超出部分会被阶段。

参考链接:https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html

##=====================================================================##

提前祝各位春节快乐

 

当前文章:http://hnhdqp.com/forum.php?mod=viewthread&tid=81233

发布时间:2018-10-22 09:07:30

挣钱app 大微信客和赚享客 时时彩赚钱技巧 逆水寒刷铜钱 手机打地主赢钱 摩尔庄园零花钱大作战 玩神魔游戏可以赚钱 京东如何推广赚佣金

编辑:顺成董扁

相关新闻

康佳劲速电视免费送 激情竞猜等你拼人品

2018-10-22 04:04:34

德阳舜寐文化传媒有限公司

补连塔煤矿、榆家梁煤矿组织员工及家属学习太极拳

2018-10-22 09:05:55

荆门刂莱新能源有限公司

榆阳区文化馆:收集六百多件“非遗”实物

2018-10-22 08:34:14

乌海怖兆培训学校

三边高原银装素裹

2018-10-22 08:31:45

成都掏椅通讯股份有限公司

热门推荐

  • 囧科技:雷军、余承东把酒言欢,情意绵绵...
  • Kindle十年15次迭代,就是为让人类多读书而已?
  • 组图:活到老学到老!61岁老人报考高校研究生
  • 耳机主动降噪好不好?看完原理你就知道了
  • 梅赛德斯-迈巴赫S680馆外亮相 更加奢华
  • 10月31日正式上市 曝陆风X7劲越配置信息
  • Steam一周销量:《绝地求生》连庄 《刺客信条起源》第二
  • 我叫mtonline安卓,qq炫舞紫钻贵族_我叫mtonline安卓【官方首页】
  • 베르나르두 실바, “무리뉴 감독은 포르투갈 축구 공헌자”
  • 河北公布雄安新区交通计划:将以轨道交通为主
  • 河北新闻网版权所有 本站点信息未经允许不得复制或镜像 法律顾问:京东赚钱模式 2018干什么最挣钱
  • 淘宝京东刷单兼职 copyright ? 2000 - 2016
  • 新闻热线:0311-67563366 广告热线:0311-67562966 新闻投诉:0311-67562994
  • 冀ICP备 09047539号-1 | 互联网新闻信息服务许可证编号:1312006002
  • 广播电视节目制作经营许可证(冀)字第101号|信息网络传播视听节目许可证0311618号
  • 能赚钱的游戏是真的吗 现在挂什么游戏赚钱 牛b网赚博客 在家兼职网赚