mysql varchar와 char 관련 질문
CMS/프레임워크 | 사용안함 |
---|---|
개발 언어 | 사용안함 |
mysql에서 컬럼 타입에서 varchar이 char보다 검색속도가 떨어진다길래 char을 사용할까 합니다.
그래서 혹시 password_hash에서 PASSWORD_DEFAULT로 암호화를 하면
무엇이든 글자수가 60으로 나오길래 char(60)을 할까 생각중입니다.
원래는 varchar(255)를 사용중이었습니다.
혹시 char(60)으로 줄이면 따로 문제가 생길까 질문남겨봅니다
댓글 2
password는 검색에 사용하는 컬럼이 아니므로 속도 차이는 아무 의미 없습니다.
이 경우에는 길이가 일정한 문자열이므로 char가 varchar보다 1바이트 절약되겠지만,
만약 길이가 일정하지 않은 컬럼을 char로 지정한다면
용량이 몇 배나 늘어나서 검색 속도가 오히려 느려질 수도 있습니다.
또한 나중에 더 좋은 암호화 알고리즘이 나와서 코어의 기본값이 바뀔 경우
코어에서 관리하는 테이블의 컬럼 속성을 임의로 바꿔놓았다면 문제가 될 수 있습니다.
반면, 길이가 일정하며 검색이나 정렬에도 많이 사용하는 regdate, last_update 등의 컬럼은
라이믹스를 신규 설치할 경우 varchar(14)가 아닌 char(14)로 생성하고 있으니
만약 예전에 설치하여 varchar(14)로 되어 있다면 char(14)로 변경하셔도 무방합니다.
지금은 라이믹스로 만들고 있는게 아니라 제 개인적인 사이트여서 mysql를 제대로 접하는건 처음이여서 질문올려보았습니다.
확실히 기진곰님 말씀대로 추후에 문제가 발생할수도 있다고 지적해주신점 감사합니다.