将唯一联系人批量导入sql(php、mysql)的更好方法
我需要导入一个非常大的联系人列表(csv格式的姓名和电子邮件,PHP->MySQL)。我想跳过现有的电子邮件。我目前的方法在生产数据库中非常慢,数据量很大 假设100个联系人(可能是10000个联系人) 原始步骤将唯一联系人批量导入sql(php、mysql)的更好方法,php,mysql,Php,Mysql,我需要导入一个非常大的联系人列表(csv格式的姓名和电子邮件,PHP->MySQL)。我想跳过现有的电子邮件。我目前的方法在生产数据库中非常慢,数据量很大 假设100个联系人(可能是10000个联系人) 原始步骤 得到了输入数据 检查表中的每个联系人是否存在电子邮件 100选择 将质量插入到表中 插入值(),(),() 1插入 这太慢了 我想改进流程和时间 我想到了两种方法 方法1 为临时空间创建max_addressbook_temp(与max_addressbook的结构相同) 清除
- 100选择
- 插入值(),(),()
- 1插入
- 可以获取要在前端显示的重复记录列表
- 非常快-要导入100条记录,始终只需要2个sql调用:1个插入值,1个插入选择
- 需要一张单独的桌子吗
- 更少的代码
- 无法显示未导入的联系人
- 速度较慢,要导入100条记录,需要调用100 insert
- 清除用户的临时数据
- 插入导入数据,不检查是否存在重复数据
- 选择要显示或计数的重复数据
- 插入不重复的数据
delete max_addressbook_temp where book_user_id =
//插入导入数据,不检查是否存在重复数据
insert into max_addressbook_temp values (), (), ()....
insert into max_addressbook t1
select * from max_addressbook_temp t2
where t1.book_user_id = t2.book_user_id
and t1.book_email <> t2.book_email
//选择要显示或计数的重复数据
select * from max_addressbook_temp t1, max_addressbook t2
where t1.book_user_id = t2.book_user_id
and t1.book_email = t2.book_email
//插入不重复的数据
insert into max_addressbook_temp values (), (), ()....
insert into max_addressbook t1
select * from max_addressbook_temp t2
where t1.book_user_id = t2.book_user_id
and t1.book_email <> t2.book_email
插入最大地址簿t1
从最大地址簿温度t2中选择*
其中t1.book\u user\u id=t2.book\u user\u id
和t1.book\u email t2.book\u email
Q:Wny不使用mySQL吗
例如:
LOAD DATA INFILE 'C:\MyTextFile'
INTO TABLE myDatabase.MyTable
FIELDS TERMINATED BY ','
增编:
听起来你实际上在问两个独立的问题:
问题1:如何将.csv文件读入mySQL数据库
我希望你考虑一下< /P>
问题2:如何将.csv中的数据与mySQL中已有的数据进行“区分”(或者两个文件中的行相交;或者一个文件中的行,而不是另一个文件)
答:没有“有效”的方法。不管你怎么做,你很可能会做一件好事
我建议如下:
数据来自网站上的文本字段。我仍然喜欢显示未导入的联系人列表,如果可能并且不会对速度造成太大影响的话。我在网站上有一个带有文本框的页面,用户可以在其中输入要导入的联系人列表。当用户单击导入按钮时,我处理列表并将其导入地址表。然后显示导入和未导入(复制)的联系人数。我还显示未导入的联系人列表。“加载数据导入”不会为我提供未导入的联系人列表,对吗?请参阅上面的评论。用户在网页的文本字段中输入(或复制粘贴)该列表。没有csv文件上载。数据来自csv格式的网站上的文本字段,即名称、电子邮件。我仍然喜欢显示一个没有导入的联系人列表,如果可能的话,如果它不会对速度造成太大影响的话。你说的不太有道理。下面的答案是正确的method@Strawberry我在网站上有一个带有文本框的页面,用户可以在其中输入要导入的联系人列表。当用户单击导入按钮时,我处理列表并将其导入地址表。然后显示导入和未导入(复制)的联系人数。我还显示未导入的联系人列表。加载数据导入不会给我一个未导入的联系人列表,对吗?