Итак, у меня есть класс, который создает таблицу для заполнения данными. Прямо сейчас у меня есть все имена столбцов одинаковые (имя_продукта, дата и т.д.). Я заметил, что когда я просматриваю свои таблицы в 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
Обратите внимание, что все индексы в эквивалентных столбцах называются одинаковыми.
Если это индекс для таблицы, не проблема
SHOW INDEXES FROM c1;
и SHOW INDEXES FROM c2;
и они оба выглядели законно ... спасибо за помощь.
Если я правильно понимаю ваш вопрос (большой, если), вы должны создать индекс для каждой таблицы. Индексы не охватывают более одной таблицы, пока вы не перейдете в расширенные концепции, такие как индексированные/материализованные представления, которые я не думаю, что MySQL обрабатывает.
show create table yourtablename
на обеих таблицах, чтобы увидеть.