我想根据标题比较两个产品数据库
我的第一个数据大概是300万,我想要比较,第二个数据是1000万,我这样做是因为要删除重复的产品。
我已经通过在PHP中使用MySQL查询编写程序尝试了这一点,如果数据将返回零,则检查标题(name ='$ name'),因此它将是唯一的,但每个结果的速度相当慢2秒。
我使用的第二种方法是将数据存储在文本文件中并使用正则表达式,但它也会变慢。
比较大数据以找出独特产品的最佳方法是什么?
表DDL:
CREATE TABLE main ( id int(11) NOT NULL AUTO_INCREMENT,
name text,
image text, price int(11) DEFAULT NULL,
store_link text,
status int(11) NOT NULL,
cat text NOT NULL,
store_single text,
brand text,
imagestatus int(11) DEFAULT NULL,
time text,
PRIMARY KEY (id) )
ENGINE=InnoDB AUTO_INCREMENT=9250887
DEFAULT CHARSET=latin1;
答案 0 :(得分:1)
由于你需要花费一些时间才能超过10百万的标题。我的方法是看看你是否可以在PHP脚本中从两个列表中获取所有标题。然后在内存中比较它们。让脚本为文本文件创建删除语句,然后在db上执行该文本文件。
不是你的问题,但可能是你的下一个问题:不同的拼写见
similar_text()
soundex()
levenshtein()
获得一些帮助。
答案 1 :(得分:0)
在我看来,这就是数据库的用途。我不会在你的鞋子里重新发明轮子。
一旦达成一致,您应该检查数据库结构和索引以加快操作速度。
答案 2 :(得分:0)
我一直在使用SQLyog来比较大约1-2百万个数据的数据库。它提供“单向同步”,“双向同步”以及“可视化合并数据”的选项以同步数据库。
重要的是,它提供了一个比较数据块的选项,以及value can be specified by us in writing the chunk limit以避免连接丢失。
答案 3 :(得分:0)
答案 4 :(得分:0)
我已经使用MySQL查询尝试了很多,但是数据非常慢,仅发现解决方案是使用sphinx,对整个数据库进行索引并在sphinx索引上搜索每个产品字符串,同时删除从sphinx获取ID的重复产品。 / p>