У вас есть два отдельных индекса в одном поле вашей таблицы (id
). Один из них подразумевается путем установки id
в качестве PRIMARY KEY
, другой вы, вероятно, создали явно. Требуется только один из них - оба могут привести к падению производительности из-за дополнительных обновлений индекса.
Просто сбросьте один из них, чтобы решить эту проблему.
Наличие ограничения PRIMARY KEY
или UNIQUE
на столбец (или поле, если вы хотите) таблицы по существу означает, что для каждой вставленной строки значение этого столбца должно быть уникальным и, следовательно, оно не должно существовать. в таблице. Наивный подход состоял бы в том, чтобы прочитать все существующие строки перед вставкой, но это сделало бы DB очень медленным, когда число строк было вставлено.
Чтобы справиться с этим, большинство (все?) Приличных механизмов баз данных будут неявно создавать индексы для таких полей, чтобы они могли быстро определить, существует ли уже значение в таблице, без необходимости отсканируйте все его строки.
В результате ручное создание индексов для полей, объявленных PRIMARY KEY
или UNIQUE
, не только избыточно, но и может привести к снижению производительности из-за дублирования работы, необходимой для обслуживания индексов.