таблица с эффективностью около 1 миллиона уникальных ключевых слов utf_unicode - PullRequest
0 голосов
/ 08 октября 2011

У меня есть таблица с 1 миллионом уникальных ключевых слов на всех языках в формате utf_unicode. В последнее время у меня были проблемы с выбором, каждый из которых занимал до 1 секунды. Это действительно вызывает замедление запросов.

Структура таблицы ключевых слов (keyword_id, keyword, dirty) -> keyword_id является первичным ключом, keyword имеет уникальный индекс, а dirty имеет простой индекс. keyword имеет тип varchar с 20 символами макс. dirty является логическим значением.

Проблемы возникают при выборе с помощью «ключевого слова» в поле «где». Как я могу ускорить эту таблицу.

Я использую MySQL с PHP.

ОБРАЗЕЦ ЗАПРОСА

SELECT k_id 
FROM table 
WHERE keyword = "movies"

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Рассматривали ли вы использование таблицы памяти вместо myisam, по моему опыту, она работает в 10 раз быстрее, чем myisam. Вам просто понадобится еще одна таблица для восстановления в случае сбоя сервера. Также вместо varchar используйте char 20. Это сделает таблицу фиксированным форматом, и mysql сможет быстрее найти ее результат.

0 голосов
/ 08 июля 2018

Если у вас есть уникальные ключевые слова, и если вы не выполняете никаких запросов на подобие / подобие, вы можете создать хеш-индекс.Это гарантировало бы поиск по одной строке.

Небольшой недостаток, который это может иметь, заключается в том, что создание хеш-индекса может занимать больше места, чем обычный индекс (на основе btree).

Ссылки:

  1. https://dev.mysql.com/doc/refman/8.0/en/index-btree-hash.html
  2. https://dev.mysql.com/doc/refman/8.0/en/create-index.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...