Две таблицы с индексами, с одинаковыми именами столбцов, содержащие разную информацию ... будет ли конфликт?

0

Итак, у меня есть класс, который создает таблицу для заполнения данными. Прямо сейчас у меня есть все имена столбцов одинаковые (имя_продукта, дата и т.д.). Я заметил, что когда я просматриваю свои таблицы в Webmin, есть только один индекс с именем "product_date", несмотря на то, что есть, предположительно, две таблицы, использующие индекс. Я не думаю, что это может быть хорошо.

Мой вопрос в том, приведет ли это к конфликту в будущем? Я не хочу заполнять таблицы тысячами строк, если мне потребуется только реструктурировать их позже. Я не могу себе представить, что я первый, кто столкнулся с этим... возможно, я просто дезинформирован о том, как работают индексы /webmin отображает индексы и чересчур параноидально.

(редактировать)

В ответ на один комментарий ниже, вот результаты SHOW CREATE TABLE tablename:

 c_1    | CREATE TABLE c_1 (
  p_id int(11) NOT NULL auto_increment,
  nm varchar(100) NOT NULL,
  m_name text NOT NULL,
  PRIMARY KEY  (p_id),
  KEY nm (nm),
  FULLTEXT KEY m_name (m_name)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

 c_2    | CREATE TABLE c_2 (
  p_id int(11) NOT NULL auto_increment,
  ne varchar(100) NOT NULL,
  m_name text NOT NULL,
  PRIMARY KEY  (p_id),
  KEY nm (nm),
  FULLTEXT KEY metaphone_name (m_name)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Обратите внимание, что все индексы в эквивалентных столбцах называются одинаковыми.

  • 0
    Вы проверяете индекс для обеих таблиц или для одной таблицы? Возможно индексы созданы на обеих таблицах. Попробуйте show create table yourtablename на обеих таблицах, чтобы увидеть.
Теги:
indexing
webmin
myisam

2 ответа

1
Лучший ответ

Если это индекс для таблицы, не проблема

  • 0
    Я думаю, что вы правы, моей проблемой было мое незнакомство с Webmin, из-за которого создается впечатление, что существует только один индекс на столбец, общий для нескольких таблиц. Вот что я получаю за использование графического интерфейса. Я был в состоянии использовать SHOW INDEXES FROM c1; и SHOW INDEXES FROM c2; и они оба выглядели законно ... спасибо за помощь.
  • 0
    Будет ли "DROP INDEX index_name" удалять index_name из всей таблицы, содержащей индекс с именем index_name? @Брайан
0

Если я правильно понимаю ваш вопрос (большой, если), вы должны создать индекс для каждой таблицы. Индексы не охватывают более одной таблицы, пока вы не перейдете в расширенные концепции, такие как индексированные/материализованные представления, которые я не думаю, что MySQL обрабатывает.

  • 0
    Когда я создаю таблицы, я создаю индекс для каждой таблицы ... но мои индексы имеют одинаковые имена. Мне нужно знать, не создаст ли это конфликт позже, или мне следует изменить имена столбцов в каждой таблице, чтобы индексы (которые создаются автоматически при создании таблицы) назывались по-разному.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню