2013-07-26 2 views
0

У меня есть таблица для пациентов в больнице, поэтому, возможно, со временем эта таблица может содержать десятки тысяч строк. Уникальный идентификационный номер больницы (BIGINT) назначается каждому пациенту, который служит в качестве ПЕРВИЧНОГО КЛЮЧА, а остальные столбцы - VARCHAR или CHAR, а также один столбец DATE. Насколько я знаю, PRIMARY KEYS автоматически индексируются, поэтому поиск по ID пациента является оптимальным (?).MySQL - индексирует ускорение моих поисковых запросов?

Пациентов можно искать одним полем или комбинацией этого идентификатора, имени, адреса, даты рождения и т. Д. Могу ли я оптимизировать свой поиск, просто создав ИНДЕКС по каждому из этих полей? Будет ли эта оптимизация работать, если поиск выполняется в комбинации этих INDEXed полей, таких как

SELECT * FROM patients WHERE first_name="John" AND address="blah blah blah"; 

????

Кроме того, я полагаю, что MySQL использует свои собственные внутренние алгоритмы для поиска, возможно бинарного поиска, и пользователи не могут выбирать или реализовывать свои собственные?

ответ

0

С MySQL документации http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html который является довольно интересно прочитать в любом случае:

Предположим, что вы выдаете следующий ЗЕЬЕСТ:

MySQL> SELECT * FROM имя_таблицы WHERE col1 = val1 И col2 = значение2;

Если в столбцах col1 и col2 существует указатель с несколькими столбцами, соответствующие строки могут быть выбраны напрямую. Если отдельные индексы один столбец существует на col1 и col2, оптимизатор будет пытаться использовать индекс слияние оптимизации (см

+0

Будет ли недостаток для создания как одиночных и несколько столбцов индексов для всех комбинаций столбцы для поиска? Например, я мог бы иметь индекс для first_name, отдельный индекс по адресу, другой индекс для first_name AND address и т. д. ... – Amoeba

+0

Индексы занимают место. Почему бы вам просто не попробовать его и посмотреть если вам это нравится. Вы также можете удалить индексы, если они не помогают. –

Смежные вопросы