2010-12-03 2 views
0

그래서 데이터로 채울 테이블을 만드는 클래스가 있습니다. 지금은 모든 열 이름이 동일합니다 (product_name, date 등). Webmin에서 테이블을 볼 때, 인덱스를 사용하는 두 개의 테이블이 있다고하더라도 "product_date"라는 인덱스가 하나만 있음을 알게되었습니다. 나는 이것이 좋을 수 있다고 생각하지 않는다.서로 다른 정보를 포함하는 동일한 테이블 이름을 가진 두 개의 테이블이 충돌합니다.

제 질문은 앞으로 충돌이 발생할지 여부입니다. 나중에 모든 것을 재구성해야 할 경우 테이블에 수천 개의 행을 채우고 싶지 않습니다. 나는 내가 처음으로 이것을 만난다는 것을 상상할 수 없다. 아마도 나는 인덱스가 작동하는 방식에 대해 잘못 알고있을 뿐이다./webmin은 인덱스를 표시하고 지나치게 편집 적이다. 아래 한 의견에 대한 응답으로

(편집)

, 여기 SHOW의 결과가 표 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'을 시도해보십시오. – Danosaure

답변

0

테이블 당 인덱스 인 경우 문제가 없습니다.

+0

당신이 옳다고 생각합니다. 제 문제는 Webmin에 익숙하지 않아 여러 테이블이 공유하는 열 인덱스 당 하나만있는 것처럼 보입니다. 그것이 GUI를 사용하여 얻은 것입니다. 나는 'SHOW INDEXES FROM c1;'과 'SHOW INDEXES FROM c2;'를 사용할 수 있었고 둘 다 합법적으로 보였다. 도움에 감사한다. –

0

귀하의 질문을 정확하게 이해하면 (큰 경우) 테이블의 색인을 만들어야합니다. 인덱스는 인덱스 된/구체화 된 뷰와 같은 고급 개념에 들어갈 때까지 하나 이상의 테이블을 포함하지 않습니다. 이것은 MySQL이 처리하지 않는다고 생각합니다.

+0

테이블을 만들 때 각 테이블의 인덱스를 만들지 만 인덱스의 이름이 같습니다. 나중에 충돌이 발생하는지 또는 각 테이블의 열 이름을 변경하여 (테이블 생성시 자동으로 생성되는) 인덱스의 이름이 다르게 지정되는지 여부를 알아야합니다. –

관련 문제