mysql - mysql 更新命令示例两个表 - SPEED UP
问题描述
假设您有 2 个表,它们之间有共同的电子邮件,并且您想将二进制值 1 设置为匹配字段 - 此查询工作得很好
...但是如果您要处理大量记录,它会非常缓慢并且会给服务器带来巨大的负载(我们是)
UPDATE table1 a
INNER JOIN table2 b
ON a.email = b.email
SET a.match = 1;
有谁知道完全相同的功能,但编写的语法可以减少服务器负载并更快地处理查询?
谢谢!
解决方案
在运行查询之前,请务必为两个表建立索引。在我们的例子中,表 1 具有唯一值,而表 2 具有相同电子邮件的多条记录(即不同的网站)
CREATE UNIQUE INDEX email ON table1 ( email );
CREATE INDEX email ON table2 ( email );
一旦在这两个表上创建了这些索引,查询就会运行得非常快。
推荐阅读
- javascript - How can I sign a transaction with a private key using the REST API Waves?
- google-cloud-platform - Google Cloud Shell 自动关闭
- json - 在 postgresql 9.3 中解析 json 数组
- sequelize.js - FeathersJS 或 Sequelize 中的钩子
- sql - Teradata 通配符连接与修改表而不是条件
- python - 类内方法的Pytest
- android - 如何使用 Kotlin 协程实现计时器
- scala - 删除播放缓存中的单个项目
- qt - qtcreator设计模式是什么类型的qWidget?
- astronomy - 从天空中的(方位角,仰角)查找(ra,dec)