У меня есть таблица для пациентов в больнице, поэтому, возможно, со временем эта таблица может содержать десятки тысяч строк. Уникальный идентификационный номер больницы (BIGINT) назначается каждому пациенту, который служит в качестве ПЕРВИЧНОГО КЛЮЧА, а остальные столбцы - VARCHAR или CHAR, а также один столбец DATE. Насколько я знаю, PRIMARY KEYS автоматически индексируются, поэтому поиск по ID пациента является оптимальным (?).MySQL - индексирует ускорение моих поисковых запросов?
Пациентов можно искать одним полем или комбинацией этого идентификатора, имени, адреса, даты рождения и т. Д. Могу ли я оптимизировать свой поиск, просто создав ИНДЕКС по каждому из этих полей? Будет ли эта оптимизация работать, если поиск выполняется в комбинации этих INDEXed полей, таких как
SELECT * FROM patients WHERE first_name="John" AND address="blah blah blah";
????
Кроме того, я полагаю, что MySQL использует свои собственные внутренние алгоритмы для поиска, возможно бинарного поиска, и пользователи не могут выбирать или реализовывать свои собственные?
Будет ли недостаток для создания как одиночных и несколько столбцов индексов для всех комбинаций столбцы для поиска? Например, я мог бы иметь индекс для first_name, отдельный индекс по адресу, другой индекс для first_name AND address и т. д. ... – Amoeba
Индексы занимают место. Почему бы вам просто не попробовать его и посмотреть если вам это нравится. Вы также можете удалить индексы, если они не помогают. –