Индекс & Ключевые проблемы в PHPMyAdmin - PullRequest
0 голосов
/ 06 августа 2011

У меня есть несколько вопросов, касающихся mysql.Я использую phpmyadmin с ним как часть пакета xampp.

Итак:

  1. Я определил поле для своей таблицы, которое было помечено как индекс.Через некоторое время я изменил имя поля, но заметил, что внизу имя ключа осталось как старое имя.Это почему?Это создает проблему?

  2. Я также заметил, что при определении более одного индекса в таблице они как-то собираются вместе под одним ключом, но только поля показывают одно поверх другого.

Я уже создал базу данных, но после внесения этих изменений я не хочу по ошибке строить плохую инфраструктуру.Должен ли я восстановить?

Ответы [ 2 ]

0 голосов
/ 06 августа 2011

Я не думаю, что вы должны восстановить.

Re ваш первый вопрос: То, что вы видите, это индексное имя не изменилось, но оно все еще указывает на то поле, которое вы переименовали

Re ваш второй вопрос: Не уверен, что вы подразумеваете под «собраться вместе под одним ключом», это может быть мифическим пользовательским интерфейсом, если это все еще вызывает беспокойство, вы можете опубликовать снимок экрана здесь.

Как правило, вы хотите избегать создания большого количества индексов для таблицы, так как это приведет к замедлению вставки и удаления. Удаление индексов является неразрушающей операцией, поэтому вы можете поэкспериментировать со всем, что хотите, чтобы найти наиболее подходящую схему для вашего варианта использования. Вы также можете захотеть взглянуть на то, что называется нормализацией, если вы интересуетесь префомансами

0 голосов
/ 06 августа 2011

Имена ключей в основном для справки и не влияют на то, какие поля они на самом деле индексируют. Имена облегчают обращение к ключу при работе с ними (добавление / изменение / удаление ключей), но в остальном это чисто информационный ключ. MySQL автоматически назначит имя ключа, если вы его не предоставите, и обычно оно основано на первом поле в ключе.

Не уверен, что вы имеете в виду об индексах. Вы должны показать свой SQL, но:

CREATE TABLE ...
...
INDEX indexA (fieldA, fieldB),
INDEX indexB (fieldC, fieldD),
INDEX indexC (fieldE)

создаст 3 индекса, два из которых охватывают два поля каждый. Любые имена полей, указанные внутри (), становятся частью этого одного индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...