【发布时间】:2020-06-30 17:24:28
【问题描述】:
我在 MySQL 服务器上有一个 68m 行 x 77 列的表 (general_table),其中包含 user_id、user_name、date 和 media_channel。
在极少数情况下(其中 83k)存在 user_id 而不是 user_name,我们会发现 user_name 的值是“-”。我可以从users_table 表中获取此信息。
要更新 general_table 上的值,我使用以下更新函数,但考虑到表的大小,它需要很长时间,所以我正在寻找替代方法。
UPDATE
general_table as a,
users_table as b
SET a.user_name = b.user_name
where a.date > '2020-01-01'
and a.user_id = b.user_id
and a.media_channel = b.media_channel
and a.user_name = '-';
也欢迎使用 Pandas、PyMySQL 或 SQLAlchemy 回答
请记住那些请求仅适用于SELECT 查询而不适用于更新的解释函数。
【问题讨论】:
-
与所有相关表的 SHOW CREATE TABLE 语句一样,关于查询性能的问题总是需要对给定查询的解释
-
嗨草莓,感谢您的快速输入。问题是它与工作相关,所以我真的不能包含比我已经拥有的更多的信息,我会尝试创建一个类似的表并添加这些。
-
那你来错地方了,我的朋友。
-
只是在寻找关于替代方案或细节的高级想法,可以使其更快,希望我们也可以帮助工作社区解决明显的限制。
标签: python mysql sql pandas sqlalchemy