gpt4 book ai didi

mysql - 检查 2 列是否重复

转载 作者:行者123 更新时间:2023-11-29 11:31:57 25 4
gpt4 key购买 nike

目前,我有一个保存主要数据的系统

1) 电子邮件

2) 所有者(user_id)

每次有人上传时,我都需要确保它不存在于系统中。问题是,随着我上传的内容越来越多,检查重复项所需的时间会急剧增加,就像所示的图表一样。

问题

1) 如何有效地检查重复项?

2) 我索引了 user_id 和电子邮件,我应该全文检索它吗?我不会阅读文本,但会整体搜索它,所以索引更合乎逻辑?

3) 我还阅读了有关结合电子邮件和所有者 ID 创建哈希然后对哈希建立索引的内容。和现在的方法会有很大区别吗?

4)我想到的最后一个方法是为 email 和 user_id 创建主键,再次不知道性能会如何。

请指教。

代码

$exist = DB::table('contact')->where('email', $row['email'])->where('user_id', $user_id)->count();
if($exist < 1){
DB::table('contact')->insert(
['email' => $row['email'], 'name' => $row['name'], 'user_id' => $user_id]
);
}

enter image description here

最佳答案

使用 Laravel 验证器:

public function store(Request $request)
{
$this->validate($request, [
'user_id' => 'required|unique',
'email' => 'required|unique',
]);
//some logic here
}

此外,您还应该在数据库中使用unique约束。

关于mysql - 检查 2 列是否重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37258620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com