环境: NodeJS,Websocket,MySQL,CentOS服务器
我到底想要什么?
这是我的MySQL数据库表“ users_history”
+-----+---------+------------------+
| ID | UserID | History |
+-----+---------+------------------+
| 1 | 1 | Login |
| 2 | 2 | Login |
| 3 | 1 | Added new record |
| 4 | 2 | Added new record |
| 5 | 1 | Added new record |
| 6 | 3 | Login |
| 7 | 3 | Added new record |
| 8 | 3 | Added new record |
| 9 | 1 | Added new record |
| 10 | 2 | Deleted recoed |
+-----+---------+------------------+
我想根据其用户ID将其历史记录发送到Websocket连接。
问题?
我有两种方法,但是我不知道哪一种更快,效率更高?
方法1
从数据库中为每个用户选择数据。
示例:
对于用户1: 从历史记录中选择*,其中UserID = 1
对于用户2: 从UserID = 2的历史记录中选择*
对于用户3: 从历史记录中选择*,其中UserID = 3
并根据其用户ID将其数据发送给每个用户
。
方法2
在一个查询中选择所有数据并存储在一个数组中,然后过滤每个UserID的数据并根据其UserID发送给用户。
示例:
从历史记录中选择*,其中UserID IN(1,2,3)
答案 0 :(得分:-1)
数据库无法“发送”数据。相反,您SELECT
所需的数据。预期的接收者都可以发起SELECT
并取回结果。或者,您可以让其他代理执行SELECT
,并通过某种方式将其“发送”给“用户”,也许是通过电子邮件。