2010-07-12 1 views
0

어떻게 든 나는 아래에 표시된 것처럼 user_id라는 두 개의 인덱스를 얻을 수있었습니다. 나는 그 (것)들 중 하나를 떨어 뜨리고, 개명하고 재건해야 하는가, 또는 이것은 아무 문제도 아닌가?MySQL 테이블에서 같은 이름의 인덱스 두 개를 얻는 데 문제가 있습니까?

SHOW INDEXES FROM core_item; 

+-----------+------------+-----------+--------------+-----------------+-----------+-------------+----------+--------+------+------------+---------+ 
| Table  | Non_unique | Key_name | Seq_in_index | Column_name  | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | 
+-----------+------------+-----------+--------------+-----------------+-----------+-------------+----------+--------+------+------------+---------+ 
| core_item |   0 | PRIMARY |   1 | id    | A   |  593642 |  NULL | NULL |  | BTREE  |   | 
| core_item |   0 | user_id |   1 | user_id   | A   |  11416 |  NULL | NULL |  | BTREE  |   | 
| core_item |   0 | user_id |   2 | product_id  | A   |  593642 |  NULL | NULL |  | BTREE  |   | 
+-----------+------------+-----------+--------------+-----------------+-----------+-------------+----------+--------+------+------------+---------+ 

답변

7

두 개의 열을 포함하는 단일 합성 색인입니다.

SHOW CREATE TABLE core_item의 출력이 이해하기 쉽다고 생각합니다.

1

인덱스가 하나 뿐이지 만 두 필드에 걸쳐 있습니다. user_idproduct_id의 복합 키입니다. 그것은 다음과 같이 생성 될 것입니다 :

ALTER TABLE core_item ADD INDEX `user_id` (`user_id`, `product_id`); 

그것은 미래의 혼란을 저장 뭔가 다른 이름을 변경 가치가 있지만, 이름 바꾸기 직접 인덱스를 지정하는 기존의 쿼리에 영향을 미치지 경우에만 수 있습니다.