2011-12-29 75 views
0

我正在构建一个标签系统(认为在博客中贴标签),将使用mysql中的两个表。mysql标签表索引

首先表有:

  • TAG_ID(INT)
  • 标签(VARCHAR)

二表有:

  • TAG_ID
  • POST_ID(以链接它们)

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

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

SELECT tag_id from tags where tag = 'atag' 

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

如果我用标记和索引的散列创建第三个字段并搜索它,效率会更高吗?

我预计标签的数量会增长到数十万。

回答

1

由于

  • 标签relativly短
  • 你想要的标签是唯一的

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

此外,由于少数标签将占标签云的很大一部分,所以您可能需要考虑将LRU缓存到RAM中。