客户想要从一堆不同的来源为他的客户编译一堆数据。我正在构建 PHP/MySQL 服务器架构。我所有的经验都是前端开发和设计,所以我遇到了性能问题,现在有很多数据集。
性能问题是重复数据删除。主 db 表存储域并具有四列:“id”、“domain_name”和两个布尔值,用于确定域是否是客户的可能目标。'domain_name' 列上有一个索引。
我不希望同一个域有多行。这些域以 30,000 个为一组,现在我正在使用:
if(!(Domain::find_by_domain($d->n))) {
// insert into db
}
我也试过:
$already_in_db = Domain::list_domains();
if(!in_array($already_in_db)) {
// insert into db
}
目前表中只有大约 170,000 个域,这两种方法都需要很长时间。
1)在域列上设置唯一索引会导致欺骗被丢弃吗?
2)有没有其他方法可以加快这个过程?