0

MySql 表: id (bigint) status (tinyint)string (varchar[250])

内容:大约3600 万个条目,其中每个字符串具有[1 到 250] 个字符的可变长度。

所需查询SELECT id FROM tb WHERE status=N AND string IN ('str1','str2'...)

问题:我需要这个string领域INDEX

IDEA:创建一个单独的表,hash_strings如下所示:

+--------------------+
| id [bigint]        |
+--------------------+
| str_hash [varchar] | ==> INDEX
+--------------------+

ids...所以我首先使用表获取字符串hash_strings,然后在第一个查询中使用列表ids而不是。strings我制作了一个单独的表,因为将字符串和哈希存储在同一个表中会使表更大,并且查询运行速度更慢。

问题

  • 你怎么看待这件事?
  • 我应该使用哪个哈希函数?(32 个字符,16 个字符)
4

0 回答 0