我正在使用 mysql 数据库。我的网站分为不同的元素(项目 12 的 PRJ_12、任务 14 的 TSK_14、文档 18 的 DOC_18 等)。我们目前将这些元素的引用存储在我们的数据库中作为 VARCHAR。关系列已编入索引,因此选择起来更快。
我们正在考虑将这些列分为 2 列(在列“element_type”上使用 PRJ,在一个“element_id”上使用 12)。我们正在考虑这个解决方案,因为我们做了很多包含 LIKE ...% 的请求(例如检索一个用户的所有任务,无论任务的 id 是什么)。但是,将这些列分成 2 列会增加索引列的数量。
所以,我有两个问题:
- 索引列中的
LIKE ...%
请求是否真的比简单的 where 查询慢(没有类似)。我知道如果该列未编入索引,则不建议进行where ... LIKE %
请求,但我真的不知道索引是如何工作的)。 - 我们将参考列一分为二的事实将使索引表的数量增加一倍。那是问题吗?
谢谢,