mysql标签表索引

时间:2011-12-29 16:58:02

标签: mysql indexing

我正在构建一个标记系统(想想在博客中发布标记),它将在mysql中使用两个表。

第一张表格有:

  • tag_id(int)
  • tag(varchar)

第二张表将有:

  • tag_id
  • post_id(链接他们)

添加标签时,我要做的第一件事是检查标签是否已存在于第一个表中。

如何以最有效的方式做到这一点?我应该做什么

SELECT tag_id from tags where tag = 'atag'

如果是,那么索引标记字段的最佳方法是什么?

如果我使用标记和索引的哈希值创建第三个字段并搜索它会更有效吗?

我希望标签数量增长到数十万个。

1 个答案:

答案 0 :(得分:1)

由于

  • 标签相对较短
  • 您希望标签是唯一的

我会说tags.tag上的正常唯一索引是要走的路。

此外,由于一些标签会占标签云的很大一部分,因此您可能需要考虑将LRU缓存在RAM中。