【问题标题】:mysql tags table indexingmysql标签表索引
【发布时间】:2011-12-29 16:58:02
【问题描述】:

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

第一个表将有:

  • tag_id (int)
  • 标签(varchar)

第二张桌子有:

  • tag_id
  • post_id(链接它们)

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

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

SELECT tag_id from tags where tag = 'atag'

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

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

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

【问题讨论】:

    标签: mysql indexing


    【解决方案1】:

    自从

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-06-04
      • 1970-01-01
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-16
      • 2015-12-15
      • 2017-08-23
      相关资源
      最近更新 更多