본문 바로가기

MySQL3

VARCHAR vs TEXT for Index (MySQL) 개발 디비 어느 테이블에서 데이터 조회 시 풀스캔이 도는 것을 발견하여 확인해보니 인덱스가 없었,,, 충격과 함께 인덱싱 작업을 하였는데, 그럼에도 불구하고 실행계획을 보니 '풀스캔'이 돌더라는 ㅠ 인덱스를 걸고 본 DDL도 좀 특이했으니, create table 테이블 ( id bigint null, version text null ); create index idx_version on 테이블 (version(768)); 인덱스 생성 시 768 이라는 숫자가 나타나는 것은, 특히 VARCHAR, CHAR, 또는 TEXT 타입의 컬럼에 인덱스를 생성할 때 볼 수 있는 현상입니다. 이 숫자는 인덱스를 생성할 때 해당 컬럼의 문자 수를 제한하는 것을 의미합니다. MariaDB와 같은 일부 데이터베이스 시스템.. 2024. 3. 27.
DB 쿼리 속도를 높이는데 너무나도 중요한 index MySQL select * from customer where first_name = 'gildong'; first_name에 index가 걸려있다면? full scan(table scan)보다 더 빨리 찾을 수 있다! O(N) -> O(logN) (B-tree based index) Index를 쓰는 이유 - 조건을 만족하는 튜플(들)을 빠르게 조회하기 위해! - 빠르게 정렬(order by)하거나 그룹핑(group by) 하기 위해! Primary Key에는 index가 자동 생성된다. INDEX name_idx (name), UNIQUE INDEX team_id_backnumber_idx (team_id, backnumber) 2023. 10. 18.
Mac MySQL 에러 ERROR 2002 (HY000).../mysql.sock' (2) MySQL을 설치하고나서 별 생각없이 'mysql -u root' 를 터미널에 딱! 입력 했는데...!! ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 무슨 일이 벌어진거죠...!?!?! 멘붕과 삽질의 끝에 찾아낸 방법 공유해봅니다 ㅠㅠ 😭😭 1. 터미널에서 다음 명령을 실행하여 MySQL 서버를 종료해요 brew services stop mysql 2. MySQL 데이터 디렉토리를 재설정하고 다시 시작합니다! 아래 명령어를 차례로 실행해주세요 (MySQL을 완전히 제거하고 재설치한 후 서버를 다시 시작하는 명령) brew uninstall mysql sudo rm -rf /usr/lo.. 2023. 6. 9.