mysql에서 컬럼 타입에서 varchar이 char보다 검색속도가 떨어진다길래 char을 사용할까 합니다.

그래서 혹시 password_hash에서 PASSWORD_DEFAULT로 암호화를 하면

무엇이든 글자수가 60으로 나오길래 char(60)을 할까 생각중입니다.

원래는 varchar(255)를 사용중이었습니다.

혹시 char(60)으로 줄이면 따로 문제가 생길까 질문남겨봅니다

 

 

  • profile

    password는 검색에 사용하는 컬럼이 아니므로 속도 차이는 아무 의미 없습니다.

    이 경우에는 길이가 일정한 문자열이므로 char가 varchar보다 1바이트 절약되겠지만,

    만약 길이가 일정하지 않은 컬럼을 char로 지정한다면

    용량이 몇 배나 늘어나서 검색 속도가 오히려 느려질 수도 있습니다.

     

    또한 나중에 더 좋은 암호화 알고리즘이 나와서 코어의 기본값이 바뀔 경우

    코어에서 관리하는 테이블의 컬럼 속성을 임의로 바꿔놓았다면 문제가 될 수 있습니다.

     

    반면, 길이가 일정하며 검색이나 정렬에도 많이 사용하는 regdate, last_update 등의 컬럼은

    라이믹스를 신규 설치할 경우 varchar(14)가 아닌 char(14)로 생성하고 있으니

    만약 예전에 설치하여 varchar(14)로 되어 있다면 char(14)로 변경하셔도 무방합니다.

  • profile
    그렇군요 감사합니다!
    지금은 라이믹스로 만들고 있는게 아니라 제 개인적인 사이트여서 mysql를 제대로 접하는건 처음이여서 질문올려보았습니다.
    확실히 기진곰님 말씀대로 추후에 문제가 발생할수도 있다고 지적해주신점 감사합니다.