잘못된 기대일반적으로 'count(*)' 쿼리가 'select *' 보다 가벼울 것이라 기대한다. 하지만 대부분은 성능이 거의 동일한 경우가 많다. 또한 limit 조건 없이 사용되는 count 쿼리와 달리 select 쿼리의 경우 일반적으로 limit 조건이 걸린 후 사용되는 경우가 많기 때문에 성능면에서 count가 더 안좋은 경우가 있다. 심지어 ORM에서 자동 생성된 쿼리를 실행하면 하기 코드와 같이 distinct 쿼리가 자동 생성되어 사용되는 경우도 있다. count(*)의 경우에는 레코드 건수만 확인하면 되지만 count(distinct column)은 임시 테이블을 생성해 테이블의 레코드를 임시 테이블로 중복을 제거하면서 복사 후 레코드 건수를 반환하기 때문에 성능적으로 보면 훨씬 안좋다...
분류 전체보기
CHAR vs VARCHARchar와 varchar는 공통적으로 문자열을 저장할 때 사용하는 타입이다. 이때 최대 저장 가능 길이를 명시하는데, MySQL에서는 바이트 수를 의미하는 것이 아니라 문자의 최대 저장 갯수를 의미하는 것을 주의해야 한다. 다음으로 차이점을 살펴보면 char의 경우에는 고정된 길이의 문자열을 저장하는 반면 varchar는 가변 길이의 문자열을 저장한다. 예를 들어, char(10)와 varchar(10)이라고 했을 때 char의 경우에는 입력된 문자열 데이터 크기와 상관없이 나머지 공간이 공백 문자 데이터가 채워지면서 10 만큼의 공간을 고정으로 할당받고 varchar의 경우에는 입력된 문자열 데이터 크기에 맞춰 가변적으로 공간이 할당된다. 또한 최대 길이도 다르다. char의..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.