индексация таблицы тегов mysql - PullRequest
0 голосов
/ 29 декабря 2011

Я создаю систему тегов (например, теги постов в блоге), которая будет использовать две таблицы в mysql.

Первая таблица будет иметь:

  • tag_id (int)
  • tag (varchar)

Вторая таблица будет иметь:

  • tag_id
  • post_id (связать их)

При добавлении тега первое, что я хочу сделать, это проверить, существует ли тег в первой таблице.

Как это сделать наиболее эффективным способом?Должен ли я просто сделать

SELECT tag_id from tags where tag = 'atag'

Если это так, как лучше всего индексировать поле тега?

Будет ли эффективнее, если я создам третье поле с хешем тега ииндекс и что искать?

Я ожидаю, что количество тегов вырастет до сотен тысяч.

1 Ответ

1 голос
/ 29 декабря 2011

Поскольку теги

  • относительно короткие
  • вы хотите, чтобы теги были уникальными

Я бы сказал, обычный индекс уникальности для tags.tagэто путь.

Кроме того, поскольку несколько тегов будут составлять большую часть облака тегов, вы можете рассмотреть возможность их LRU-кэширования в ОЗУ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...