2010-12-27 4 views
0

설정 : id = INT, 기본 키, 자동 증가. 그런 다음 20 개의 텍스트 열, varchar 또는 char (아래 질문 참조).mysql 행을 더 빨리 읽음 SELECT * 고정 변수 대 변수

쿼리 (SELECT *)에서 MySQL 데이터의 전체 단일 행을 읽는 경우, mysql이 개별 열 길이 데이터를 검색 할 필요가 없다고 가정 할 때 varchar 대신 char을 사용하면 더 빠릅니까? (SELECT * 질의와 다른 것이 있는지보기)

답변

0

나는 및 시간 소비 포장은 말할 것도없고, char를 사용하여 varchar보다 더 빠르다는 것을 확신하지 않다 네트워크 전송을 위해 모든 공간 압축을 푸는 것.

의도를 분명히하기 위해 이동하십시오.

프로그램에서 수정할 사항이 있으면 select *으로 시작하십시오.

0

CHAR은 선언 된 모든 문자를 소비하기 때문에 VARCHAR가 더 커야합니다.

예. VARCHAR (1)은 CHAR (1)과 차이가 없으므로 길이 10의 이점을 보지 못할 것입니다. 1000과 같은 길이를 사용하면 차이가 있습니다.

+0

답변이 잘못 되었기 때문에 당신을지지했습니다. – Adrian

-1

크기가 변수가 아닌 고정이기 때문에 "char"를 사용하면 선택 속도가 빨라집니다. 단점은 데이터베이스가 더 많은 공간을 차지하게되고 후행하는 공백이 보존되지 않는다는 것입니다 (필요한 경우). varchar를 사용하여 응용 프로그램을 프로파일 링하고 성능 문제 인 경우 char를 사용하도록 전환하는 것이 좋습니다. 어딘가에 당신이 그 (또는 주위의 메모리 공간의 수백, 수천 주변의 장바구니)를 표시하기 전에 어쨌든 문자열을 손질해야하기 때문에

+0

왜 투표 결과가 떨어 졌습니까? – David19801

+0

단서 없음 sjngm도 우리 모두 쿼리 속도에 대한 올바른 불구하고 downvote있어 – Adrian

0

응용 프로그램에 대해 더 많이 알지 못해도 대답하기가 어렵습니다. 엔진에 따라 열에있는 데이터의 크기를 항상 알고 있기 때문에 CHAR이 더 효율적입니다. 그러나 필요하지 않은 공간 (CHAR (50), 대부분의 행은 해당 열에 4-5 자만 사용)을 차지합니다.

Blindy가 말한 것처럼 엔진 최적화에 대해 걱정하기 전에 먼저 질문을 시작하십시오.