今天一同事碰到这样一个问题:要比较两个数据库文件的差异,数据量太大,一个一个看是不现实的,有什么办法更快一点呢?
中午睡觉的时候,作了一些尝试,终于想到一个办法。
具体的办法如下:
一、先安装sqlite3,在ubuntu上使用sudo apt-get install sqlite3。如果想了解sqlite3的操作,请参考:http://blog.youkuaiyun.com/yangchao228/article/details/6614987
二、用shell脚本实现数据库对比。代码如下:
#!/bin/sh
if [ $# -ne 2 ]
then
echo "Usage - $0 db1 db2"
exit 0
fi
sqlite3 $1 'select * from epgPF order by serviceId'>1.txt
sqlite3 $2 'select * from epgPF order by serviceId'>2.txt
diff 1.txt 2.txt > diff_$1_$2.patch
sync
哈哈,是不是很简单。里面的sql可以根据实际工作替换。