Mysql:将大型唯一标记作为数组存储在单个列中

时间:2015-12-28 09:31:35

标签: mysql

我必须为每个客户生成唯一的令牌并存储在数据库中。每天我将为所有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存储唯一令牌,请指导我。

0 个答案:

没有答案