日期:2014-05-16  浏览次数:21075 次

mysql两表数据对比,查询出不同的数据
首先声明本人对数据库基本操作那些都会,但是对数据库优化真没方法、经验。现在手头的项目是需要查询两个表,两个表的结构是一模一样的,需要查询两个表不同的数据。就那超市做例子,我每个小时查询一次超市产品表跟上个小时产品的价格的差异,并查询出来。其中产品的数量肯定是上万条,现在我用最基本的查询,查询1W条数据花费6分钟,虽然不可否认的是公司电脑很垃圾处理数据不行,但是同样也知道是做法上的问题。我的基本查询语句是:(PS:pnumber:条码,pmoney价格,productinfo实时存储产品表,nproductinfo每个小时新数据表)

select pnumber,pmoney from productinfo A where not exists (select * from nproductinfo B where A.pnumber=B.pnumber and A.pmoney=B.pmoney)


大侠们针对这几万乃至几十万的数据,如何才能最快的查询出两个表中不同的数据,其中务必需要查询出pnumber,pmoney。先多谢了。

------解决方案--------------------
在productinfo 和nproductinfo 都加上(pnumber和pmoney)的联合索引
------解决方案--------------------
create index xxx on nproductinfo (pnumber,pmoney)