我必须为每个客户生成唯一的令牌并存储在数据库中。每天我将为所有clients生成500万个唯一令牌.client_id和request_id用作复合键。对于每个uniuque client_id和request_id,我必须生成0.5百万个qr代码。我正在将数据存储在表中,如下所示。
----------------------------
|client_id|request_id|token|
---------------------------
|1 | 1 | abc |
----------------------------
|1 | 1 | xyz |
----------------------------
|1 | 2 | kbc |
----------------------------
|2 | 1 | def |
----------------------------
|2 | 1 | jkl |
----------------------------
|2 | 2 | des |
----------------------------
但上述结构的问题在于,如果我必须从现有的3000万条记录中搜索client_id
1和request_id
1的所有唯一标记(50万),则需要更多时间。有时搜索时间超过一分钟。我已经索引了client_id和request_id列但仍然需要时间。有时如果我运行更多3个选择查询然后得到“mysql服务器已经消失”错误。
我在考虑将唯一标记存储在数组的单个列中,以便使用client_id和request_id列更快地进行搜索。
|client_id|request_id|token |
---------------------------------
|1 | 1 | [abc,xyz] |
----------------------------------
|1 | 2 | kbc |
----------------------------------
|2 | 1 | [def,jkl] |
----------------------------------
|2 | 2 | des |
----------------------------------
如果使用上述结构存储任何缺陷,请为每个唯一的client_id和request_id存储唯一令牌,请指导我。