数据表迁移数据一致性验证,迁移数据一致性验证
数据表迁移数据一致性验证,迁移数据一致性验证
在迁移数据库的时候做一些必要的验证还是很有用的,比如说迁移前后的数据条数是否一致,数据是否一致,这个时候怎么办呢,验证条数还好说,要是验证数据是否一致呢,对于重要的数据当然要每条都不会有差错,随机抽样验证肯定是不行的,万一遗漏了就麻烦了,而且两张表不再同一台服务器上。这个时候该怎么办呢,有一种方法:
上面这种方法是同时想出来的,也还不错,但我觉得还有改进的余地:
- 首先就是不是所有字段,仍然有可能在非主要字段出现different。
- 整体效率比较低
我的想法是这样:
第二种方法的好处就是输出文件会在一定范围缩小,比对方便,但是也有缺点,不能像第一种方法一样直接通过关键字段定位不同数据的位置。
下面是第二种方法效果和的具体代码实现:
'localhost', 'port' => '3306', 'user' => 'root', 'pswd' => '123456', 'charset' => 'utf8', 'tables' => array( 'lagou.pos', 'lagou.pos_innodb', ), ); //验证格式 if(!$link = mysql_connect($dbinfos['host'].":".$dbinfos['port'],$dbinfos['user'], $dbinfos['pswd'])) { die("connect to [{$host}@{$port}] failed!!"); } if(!mysql_query("set names {$dbinfos['charset']}")) { die("set charset error : ".mysql_error()); } foreach ($dbinfos['tables'] as $table) { if($is_count) { $sql = "select count(*) as nums from {$table}"; $ret = mysql_query($sql); if(!$ret) { die("error : ".mysql_error()); } $ret = mysql_fetch_array($ret, MYSQL_ASSOC); echo "{$table} : {$ret['nums']}\n"; } if($is_md5) { $path = $is_md5.DIRECTORY_SEPARATOR.$table; $sql = "select * from {$table}"; $ret = mysql_query($sql); $flag = 0; $fields = ''; while ($_ret = mysql_fetch_array($ret, MYSQL_NUM)) { $flag++; while($_ret) { $fields .= array_pop($_ret); } if($flag % $conbine_num == 0) { file_put_contents($path, md5($fields)."\n", FILE_APPEND); $fields = ''; } } if($flag % $conbine_num != 0 && $flag > 0) { file_put_contents($path, md5($fields)."\n", FILE_APPEND); } echo "save to file info : ".realpath($path)."\n"; } }

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何在Java中實現分散式快取的一致性和容錯機制分散式快取是互聯網高並發系統中常用的技術,它可以提高系統的效能和擴充性。然而,分散式快取面臨一致性和容錯的挑戰。在本文中,我們將討論如何在Java中實現分散式快取的一致性和容錯機制,並提供具體的程式碼範例。一、一致性機制在分散式環境下,快取的一致性是非常重要的。分散式快取的一致性可以透過以下兩種機制實現:快取更

Redis是一個開源的、高效能的NoSQL資料庫,由於其快速讀寫速度、資料結構比較豐富,被廣泛應用於快取、佇列和分散式鎖定等方面。但是,在分散式事務領域的應用仍有待深入研究。本文將從Redis的特色出發,探討如何利用Redis實現分散式事務的一致性與可靠性保障。一、Redis的資料結構特徵Redis支援的資料結構非常豐富,包括字串、列表、雜湊表、集合等等。這

Go語言中如何處理並發資料庫資料一致性問題?當多個並發請求同時存取資料庫時,會引發資料一致性問題。在Go語言中,我們可以使用事務和鎖來處理這個問題。以下我將詳細介紹如何在Go語言中處理並發資料庫資料一致性問題,並給出具體的程式碼範例。首先,我們需要使用資料庫的事務機制。資料庫事務提供了一種機制,用於將一系列的資料庫操作視為一個整體,要么全部成功,要么全部失敗

Redis是一種高效能的記憶體資料庫,被廣泛應用於大規模資料的儲存和處理。除了作為獨立的資料庫使用之外,Redis還可以作為快取層,用來提高系統的存取速度。在分散式應用場景中,Redis作為分散式快取的角色越來越重要。然而,在分散式環境下,如何確保Redis分散式快取的一致性是開發人員需要面對的難題。本文將介紹Redis實作分散式快取一致性的方法與應用實例。一

掌握Java開發中的分散式快取一致性技巧隨著網際網路的快速發展,大多數應用程式都面臨分散式系統的挑戰。為了提高效能和可擴充性,許多應用程式都採用了分散式快取來快取資料。然而,分散式快取的一致性問題一直是開發者面臨的難題。本文將介紹一些Java開發中的分散式快取一致性技巧,幫助開發者解決這些問題。一、分散式快取背景知識在介紹具體技巧之前,我們先來了解分散式緩

隨著網路應用的快速發展,分散式架構已成為了企業級應用的重要選擇。而作為其中一種常見的快取技術,Redis也扮演著重要的角色。分散式事務的可靠性與一致性是架構設計中不可避免的議題之一,本文將以Redis為例,探討其在分散式事務中的可靠性與一致性對比。一、Redis的常見問題Redis透過將資料快取在記憶體中,提供快速、有效率的存取。但同時也因此面臨諸如數據丟

隨著網路技術的發展,分散式應用系統已經成為了程式設計師日常工作中必須面對的挑戰。而在處理分散式資料的時候,保證一致性是我們最關心的問題之一。而此時,MySql是一個備受青睞的解決方案,因為它能夠提供大部分分散式應用所需的功能。本文就將介紹如何在分散式環境下使用MySql解決資料一致性的問題。什麼是分散式事務分散式事務是指一個事務的操作涉及到多個獨立的計算

Redis是一個高效能、分散式記憶體資料庫,被廣泛地應用在分散式系統中。在分散式系統中,如何實現事務的一致性一直是個難題,而Redis提供的事務機制可以幫助開發者解決這個問題。本文將介紹Redis如何實現分散式事務的一致性,並展示程式碼範例。一、Redis事務機制簡介Redis在2.0版本中就提供了事務機制,該機制透過MULTI、EXEC、WATCH、DISCA
