Что означает "Показатели PRIMARY и id, похоже, равны, и один из них может быть удален". имею в виду?

Indexes Что это значит и как я могу это исправить?

Ответ 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. Я считаю, и он кажется, что индекс один был создан вручную, но является дублированием работы.