복붙노트

[SQL] 대 Varchar 인덱스는 성능 차이가 있습니까?

SQL

대 Varchar 인덱스는 성능 차이가 있습니까?

포함 된 VARCHAR 컬럼에 인덱스가 느린 쿼리 실행을합니까? 그 BE의 INT를 만들 수 있습니다. 그리고 나는 LIKE %의 비교를 수행 할 필요가 없습니다.

해결법

  1. ==============================

    1.아니 그렇지 않아. 최적화 프로그램이 인덱스를 사용하기로 결정하면, 쿼리가 더 빠르게 실행됩니다. 그 테이블에 INSERT들 / UPDATE들 / 삭제 작업하지만 가능성이 충분한주의 사항, 속도가 느려집니다.

    아니 그렇지 않아. 최적화 프로그램이 인덱스를 사용하기로 결정하면, 쿼리가 더 빠르게 실행됩니다. 그 테이블에 INSERT들 / UPDATE들 / 삭제 작업하지만 가능성이 충분한주의 사항, 속도가 느려집니다.

    사용하여 해당주의 :

    LIKE '%whatever%'
    

    ... 인덱스하지만, 다음과 같은 뜻을 사용하지 않습니다 :

    LIKE 'whatever%'
    

    키 컬럼에 인덱스를 사용할 수없는 문자열 수단의 좌측을 와일드 카드이다.

    또한 MySQL이 인덱스에 대해 따로 공간 설정의 양을 제한 것을 알고있다 - 그들은의 MyISAM 긴 1000 바이트 테이블 (InnoDB에 대한 767 바이트)까지 할 수있다.

  2. ==============================

    2.당신은 (에 무엇을 당신의 힌트 인 나는 생각한다) 정수와 몇 가지 이유에 대한 varchar 열보다 더 수행 할 정수 열을 포함하여 다음 인덱스를 당신의 VARCHAR 컬럼을 교체 할 수 있습니다.

    당신은 (에 무엇을 당신의 힌트 인 나는 생각한다) 정수와 몇 가지 이유에 대한 varchar 열보다 더 수행 할 정수 열을 포함하여 다음 인덱스를 당신의 VARCHAR 컬럼을 교체 할 수 있습니다.

  3. ==============================

    3.인덱싱은 데이터베이스 크기는 단지 더 크게, 속도가 느린 쿼리를 만들 그래서 가서 그것을 시도를 제공하지 않습니다.

    인덱싱은 데이터베이스 크기는 단지 더 크게, 속도가 느린 쿼리를 만들 그래서 가서 그것을 시도를 제공하지 않습니다.

    당신은 할 수 가져 오는 행에 더 나은 성능을 얻을 수 있어야하지만 당신의 데이터를 쿼리에 따라 달라집니다.

  4. ==============================

    4.당신은 색인에 의해 어떤 느린 쿼리를 만드는하지 않을 수 있습니다. 당신이 열에게 int 형을 만들 수 있다면 대부분의 RDBMS의 빠른 VARCHAR에 비해 INT의를 검색 할 수 있습니다로, 나는 이렇게 권하고 싶습니다

    당신은 색인에 의해 어떤 느린 쿼리를 만드는하지 않을 수 있습니다. 당신이 열에게 int 형을 만들 수 있다면 대부분의 RDBMS의 빠른 VARCHAR에 비해 INT의를 검색 할 수 있습니다로, 나는 이렇게 권하고 싶습니다

  5. ==============================

    5.그것은 삽입에 올 때 성능 문제가 있습니다. 나는 확실히 VARCHAR 컬럼을 통해 인덱스가 큰 테이블에 삽입하는 것은 매우 느릴 수 있음을 알 수 있습니다하십시오. (1/50까지)

    그것은 삽입에 올 때 성능 문제가 있습니다. 나는 확실히 VARCHAR 컬럼을 통해 인덱스가 큰 테이블에 삽입하는 것은 매우 느릴 수 있음을 알 수 있습니다하십시오. (1/50까지)

  6. from https://stackoverflow.com/questions/1898453/does-index-on-varchar-make-performance-difference by cc-by-sa and MIT license