我从来没有找到一种好方法来索引一行的多个字段作为索引的条目或在 MySQL 上模拟此功能。
当您将字段用作标签或类似概念时,就会出现问题。例如:字段名称为 tag1、tag2、tag3。要快速搜索带有特定标签的行,您需要有 3 个索引并以最基本和最明显的方式执行 3 个单独的查询。
有什么方法可以将这 3 个字段索引为一个索引的条目,只允许一次搜索。
ID tag1 tag2 tag3
-- ---- ---- ----
01 abc xyz bla
02 foo bar ble
03 xyz bla bar
index
abc -> 01
bar -> 02 03
bla -> 01 03
ble -> 02
foo -> 02
xyz -> 01 03
或者有没有其他方法可以有效地做到这一点?
如果我理解正确,这个查询应该有效:
鉴于此表结构:
任何时候你有一个带编号的字段名称,你都没有规范化你的表。我可能会有一个“标签”表,然后我可以加入我正在标记的任何内容:
(主键是多列的,多列索引的第二个字段上有一个附加索引)
如果标签必须按特定顺序排列,您始终可以添加“顺序”列。