Php 比较两大数据-2000万种产品
我想比较两个基于标题的产品数据库 我想比较的第一个数据大约是300万,第二个数据是1000万,我这样做是为了删除重复的产品 我用PHP中的MySQL查询编写程序尝试了这一点,该程序检查title(name='$name'),如果数据返回零,那么它将是唯一的,但每个结果的速度非常慢,为2秒 我使用的第二种方法是将数据存储在文本文件中并使用正则表达式,但它也会变慢 比较大数据以找出独特产品的最佳方法是什么 表DDL:Php 比较两大数据-2000万种产品,php,mysql,compare,bigdata,Php,Mysql,Compare,Bigdata,我想比较两个基于标题的产品数据库 我想比较的第一个数据大约是300万,第二个数据是1000万,我这样做是为了删除重复的产品 我用PHP中的MySQL查询编写程序尝试了这一点,该程序检查title(name='$name'),如果数据返回零,那么它将是唯一的,但每个结果的速度非常慢,为2秒 我使用的第二种方法是将数据存储在文本文件中并使用正则表达式,但它也会变慢 比较大数据以找出独特产品的最佳方法是什么 表DDL: CREATE TABLE main ( id int(11) NOT NULL A
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;
在我看来,这就是数据库的用途。我不会在你的鞋子里重新发明轮子
一旦达成一致,您就应该真正检查数据库结构和索引,以加快您的操作。因为您需要超过1000万个标题300万次,这将需要一些时间。我的方法是看看是否可以在php脚本中从两个列表中获取所有标题。然后在内存中比较它们。让脚本创建一个文本文件中的delete语句,然后在db上执行 不在你的问题中,但你可能会遇到下一个问题:不同的拼写,请参见
similar_text()
soundex()
levenshtein()
这方面需要一些帮助。我一直在使用它来比较大约100-200万个数据的数据库。它提供了一个选项,用于“单向同步”,“双向同步”,以及“可视化合并数据””以同步数据库
重要的是,它提供了一个选项来比较块上的数据,这是为了避免连接丢失
我尝试了很多使用MySQL查询的方法,但数据速度非常慢,只发现解决方案是使用sphinx,索引整个数据库,搜索sphinx索引上的每个产品字符串,同时删除重复产品,从sphinx获取ID。类似的方法(未测试)
从t2上的table1 t1内部联接table2 t2中选择stuff。name=t1。name
将为您提供每个表中具有匹配名称的产品列表。然后您可以修改它以更新或删除等。如果名称没有正确索引,那么是的,它将非常慢。显示输出关闭Show create table[table\u name]
statement您的问题太模糊,无法回答。从两个表中提供示例数据,并准确解释重复项的含义。创建表main
(id
int(11)非空自动增量,name
text,image
text,price
int(11)默认为空,store\u链接
text,status
int(11)不为空,cat
text不为空,store\u single
text,brand
text,imagestatus
int(11)默认为空,time
text,主键(id
)引擎=InnoDB自动增量=9250887默认字符集=latin1;重复产品是指,根据两个表中的标题比较产品,如果第一个数据库中的产品来自第二个数据库,则它将是重复产品。