【发布时间】:2017-02-05 07:12:13
【问题描述】:
我正在使用 node.js mysql 包,我可以在其中创建连接,然后在 connection.query(..) .. 之后关闭连接。
我有一组要在 mysql 数据库中更新的行,但我不知道这些行是否存在。这里我有两种解决方案,但我不知道哪个更好:
-
删除我要在mysql数据库中更新的所有行并使用一个connection.query(..)插入所有行..
sudo 代码:1. 从 id = ..[] 的表中删除, 2. 插入表集...
-
检查我要更新/插入的每一行,如果id存在于mysql数据库中,则发送查询更新,否则插入。
sudo 代码:1. 对于列表中的每一行 2.检查mysql中是否存在该行 3. 如果存在,则发送查询更新; 如果不存在,则发送查询到插入
对于第二种解决方案,我担心这可能过于耗时。有人有什么建议吗?做这个的最好方式是什么? 我是这些东西的新手,所以我不知道在 for 循环中发送多个查询是否更好,尤其是在节点中,每个 connection.query 是一个带有回调的函数。哪一个将具有更好的整体性能?或任何其他解决方案?
【问题讨论】:
-
这是 mysql:同时执行这两个操作:
insert .. on duplicate key update。问题解决了。