Недавно я узнал о возможностях повышения производительности при использовании составных индексов или составных клавиш в mySQL через этот вопрос создать многочисленные таблицы/составной ключ. Должно быть 2 индекса с обменными местами, такими как: < /p>
CREATE TABLE users (
...
mobile BIGINT UNSIGNED,
email VARCHAR(100),
...
KEY `mobile_email` (`mobile`, `email`),
KEY `email_mobile` (`email`, `mobile`),
...
);
Поскольку пользователь может ввести что -либо во вводе поиска.
Итак, мой вопрос заключается в том, что если в таблице есть более 2 столбцов, скажем, 10, которые доступны для поиска через входной короб , как следует создавать индексы в соответствии с предыдущим вопросом, создавая несколько индексов, каждый для индивидуального столбца - не является или не может быть хорошей идеей. P./P. P./P,> P> P./P,> P> P.> P.> P./P> P./P> P./P.> P.> P./P> P./P> P./P> P./P.> P.> P.> P.> P.> P.> P.> P.> P./P.> P. Несколько составных индексов с обменными местами не чувствуют себя правильными. Например: < /p>
CREATE TABLE users (
...
mobile BIGINT UNSIGNED,
mobile_alt BIGINT UNSIGNED,
email VARCHAR(100),
...
KEY `mobile_mobile_alt_email` (`mobile`, `mobile_alt`, `email`),
KEY `email_mobile_mobile_alt` (`email`, `mobile`, `mobile_alt`),
KEY `mobile_alt_mobile_email` (`mobile_alt`, `mobile`, `email`),
// and so on
...
);
Подробнее здесь: https://stackoverflow.com/questions/797 ... nd-indexes