Что это значит и как я могу это исправить?
Что означает "Показатели PRIMARY и id, похоже, равны, и один из них может быть удален". имею в виду?
Ответ 1
У вас есть два отдельных индекса в одном поле таблицы (id
). Один из них подразумевается, установив id
как PRIMARY KEY
, другой, который вы, вероятно, создали явно. Требуется только один из них - наличие обоих из них может привести к снижению производительности из-за дополнительных обновлений индекса.
Просто drop один из них, чтобы решить эту проблему.
Наличие ограничения PRIMARY KEY
или UNIQUE
на столбец (или поле, если хотите) таблицы по существу означает, что для каждой вставленной строки значение этого столбца должно быть уникальным и, следовательно, оно уже не должно существовать в таблице. Наивный подход состоял бы в том, чтобы прочитать все существующие строки перед вставкой, но это сделало бы БД очень медленным, как только было вставлено несколько строк.
Чтобы справиться с этим, большинство (все?) достойных систем баз данных будут неявно создавать индексы для таких полей, чтобы они могли быстро определить, существует ли значение в таблице, без необходимости сканировать все его строки.
В результате ручное создание индексов для полей, объявленных PRIMARY KEY
или UNIQUE
, не только является реалистичным, но также может привести к потере производительности из-за дублирования работы, необходимой для поддержания индексов.
Ответ 2
Мне кажется, что он говорит, что оба этих индекса имеют одни и те же свойства и имеют только разные имена ключей, причем два индекса будут создавать дополнительное пространство для хранения, а также время выполнения для вставки (нет причин для этого Я могу придумать) более подробную информацию по этой теме можно найти здесь:
http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
http://dev.mysql.com/doc/refman/5.0/en/create-index.html
PRIMARY создается phpMyAdmin. Я считаю, и он кажется, что индекс один был создан вручную, но является дублированием работы.