varchar 열의 인덱스가 쿼리를 느리게 실행합니까? 내가 int로 만들 수 있습니다. LIKE % 비교를 수행 할 필요가 없습니다.Varchar의 인덱스가 성능 차이를 낳습니까?
답변
varchar 열의 인덱스가 쿼리를 더 느리게 실행합니까?
아니요.
최적화 프로그램이 인덱스 사용을 결정하면 쿼리가 더 빨리 실행됩니다. INSERT
s/UPDATE
s/DELETE
s는 더 느리지 만주의할만한 수준은 아닙니다.
내가
사용주의하십시오에서 LIKE %의 비교를 수행 할 필요가 없습니다 :
LIKE '%whatever%'
이 ... 인덱스를 사용하지하지만, 다음과 같은 뜻을 :
LIKE 'whatever%'
키가 lefthan을 와일드 카드하고 있습니다. 문자열의 d면은 열의 색인을 사용할 수 없음을 의미합니다.
또한 MySQL limits the amount of space set aside for indexes을 알고 있습니다.이 테이블은 MyISAM (InnoDB의 경우 767 바이트) 테이블의 경우 최대 1000 바이트가 될 수 있습니다.
감사합니다. 왼쪽 와일드 카드를 제거하면 색인을 사용한다는 것을 알지 못했습니다. 나는 와일드 카드가 전혀 지원되지 않을 것이라고 기대하지 않았다. – RevNoah
인덱싱을 사용하면 쿼리 속도가 느려지지 않으므로 데이터베이스 크기가 커집니다. 따라서 시도해보십시오.
행을 가져 오는 데 더 나은 성능을 얻을 수 있지만 데이터, 쿼리에 따라 달라집니다.
입니다. 인덱싱 *은 삽입 속도를 저하 시키며 정기적으로 디스크를 치는 지점까지 데이터베이스 크기를 밀어 넣으면 성능이 완전히 저하 될 수 있습니다. –
고맙습니다.네가 옳아! – YOU
색인을 생성하여 쿼리를 더 느리게 만들지는 않을 것입니다. 열을 int 유형으로 만들 수 있다면 대부분의 RDBMS에서 varchar보다 빠르게 int를 검색 할 수 있으므로이 방법을 사용하는 것이 좋습니다.
varchar 열을 정수로 바꿀 수있는 경우 (내가 생각하는 것처럼 생각합니다) 정수 열을 포함하는 인덱스는 몇 가지 이유로 varchar 열보다 더 잘 수행됩니다.
- 인덱스 크기가 작아지고 페이징 횟수가 줄어 듭니다.
- 정수 비교는 varchar보다 훨씬 좋습니다.
삽입과 관련하여 성능 문제가 있습니다. varchar 열에 대한 인덱스가있는 큰 테이블에 삽입하는 것이 매우 느릴 수 있음을 확실히 말할 수 있습니다. (최대 50x)
- 1. Varchar의 색인?
- 2. LINQ to Objects 및 인덱스가 향상된 성능?
- 3. Oracle - varchar의 수
- 4. SQLite는 VARCHAR의 기본 크기 SQLite는에서
- 5. Pthread : 시작 위치가 차이를 만듭니다.
- 6. 차이를 직접
- 7. PostgreSQL에서 CHARACTER VARYING과 VARCHAR의 차이점은 무엇입니까?
- 8. SQL Server에서 VARCHAR의 최대 크기는 얼마나 엄격합니까?
- 9. MySQL VARCHAR의 문자를 저장할 수 있습니까?
- 10. 데이터베이스에 공간 인덱스가 필요합니까?
- 11. 시간 차이를 포맷하는 함수
- 12. 2 날짜의 차이를 얻으려면
- 13. 루비 배열의 차이를 가져옵니다
- 14. 많은 차이를 선택하고 선택하십시오.
- 15. vb.net : 인덱스가 범위를 벗어났습니다.
- 16. 문자열 인덱스가 범위를 벗어났습니다
- 17. htaccess 인덱스가 깨집니다.
- 18. Z- 인덱스가 작동하지 않습니까?
- 19. ArgumentOutOfRangeException : 인덱스가 범위를 벗어났습니다
- 20. 인덱스가 메모리에 완전히로드됩니다.
- 21. "인덱스가 매트릭스 크기를 초과합니다"
- 22. 탭 인덱스가 UpdatePanel에서 재설정되었습니다.
- 23. 인덱스가 조각화되는 이유는 무엇입니까?
- 24. 선택한 인덱스가 변경되지 않았습니다.
- 25. 배열 인덱스가 범위를 벗어났습니다.
- 26. 작은 테이블에 인덱스가 없습니까?
- 27. 오류 2006 인덱스가 경계
- 28. 페이지 인덱스가 작동하지 않습니다
- 29. jQuery를 인덱스가 여기에
- 30. Datagrid 페이지 인덱스가 변경됨
당신이 의미하는 것을 보여주는 샘플 쿼리를 보여주는 것은 어떻습니까? – wallyk
"느린"것은 비교할 것이없는 의미가 없습니다. VARCHAR이 INT보다 느린 지 또는 인덱싱 된 VARCHAR이 인덱싱되지 않은 것보다 느린 지 묻는 중입니까? –
이해가 안됩니다. 당신이 저장하는 데이터가 int 인 경우 열 유형이 int 여야하며 해당 열을 색인 할 것입니다. 데이터가 varchar이면 열 유형이 varchar – ram