对两个表都复制到新表,假设为A1, B1
10年积累的网站设计制作、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有德江免费网站建设让你可以放心的选择与我们合作。
A1, B1增加字段hash,然后,对每条记录选几个字段,按照相同顺序,组合到一起,形成一个字符串,然后对这个字符串,求MD5(或者别的也可以,只要是hash算法都成),装入hash字段然后,以hash建索引
这时候,hash相同的,就可能是相同记录了,然后,再比较确认
就是遍历一次表的操作,很容易了啊
如何比较2个mysql数据库数据
sql语句:因为MySQL 没有full outer join,所以用left join union all right join来实现
select a.table_schema,
a.table_name,
a.column_name,
b.table_schema,
b.table_name,
b.column_name
from information_schema.columns a
left join information_schema.columns b on a.table_name = b.table_name and a.column_name =
b.column_name and b.table_schema = 'DBNAMe1'
where a.table_schema = 'DBNAME2' and
(b.table_name is null or
b.column_name is null)
union all
select a.table_schema,
a.table_name,
a.column_name,
b.table_schema,
b.table_name,
b.column_name
from information_schema.columns a
left join information_schema.columns b on a.table_name = b.table_name and a.column_name =
b.column_name and b.table_schema = 'DBNAME2'
where a.table_schema = 'DBNAME1' and
(b.table_name is null or
b.column_name is NULL) ;
先把每个库的表结构导出到文件,然后比较这两个文件。
mysqldump --skip-comments --skip-extended-insert -u root -p database1file1.sql
mysqldump --skip-comments --skip-extended-insert -u root -p database2file2.sql
diff file1.sql file2.sql
其实还有一些比较工具,推荐一个
mysql-comparison-tools