我正在制作一段 PHP 代码,它接受用户 XML 输入(包含多个记录/项目,通常大约 20 到 100 个),对其进行解析,然后根据记录数据库对其进行检查。如果数据库中没有记录,PHP 脚本应该插入它。如果记录在数据库中,则脚本应丢弃用户的输入或运行该记录的更新,具体取决于用户是否选中了“替换记录”复选框。
我的问题是,哪个更快:选择确定唯一性的整个表的列,然后在 PHP 中对它们进行排序?或者,对于每条记录,执行 SELECT COUNT() FROM table WHERE name=(input name) AND region=(input region) 并查看是否有任何记录返回?
一个大 SQL 查询 + 相当多的 PHP 排序时间,还是 100 个小 SQL 查询和一个 PHP 比较?
编辑:人们一直在要求详细信息,所以:
数据库大小: 250 条记录或更少
索引列:我还没有在 YET 中放置索引,但我将在生产版本中设置名称和区域列与索引。
返回 SELECT 的格式:如果我执行大 SELECT,由于我使用的 DB 类 (WPDB),它将在行对象的关联数组中返回。
什么构成唯一性:名称和区域列确定记录是否唯一。如果名称-区域组合不在数据库中,则该记录是唯一的。
例如,name:"Paris" region:"France"和name:"Paris" region:"Texas"是两个唯一记录。但是,name:"Paris" region:"France"和name:"Marseilles" region:"France"也是如此。