본문 바로가기

Programing/DB24

[MySQL] Cardinality - 희소성이라고 생각하면 됨. 같은 물질이지만 diamond vs 석탄의 가치는 다름 - 해당 Column의 중복 수치(quantity) - 중복도가 낮으면, Cardinality가 높음 - 중복도가 높으면, Cardinality가 낮음 - 회사 부서별 인원 table이 있다고 했을 때, 부서는 상위 category라 Cardinary 낮음 - 부서에 속한 각 인원은 Unique한 이름을 가지기에 Cardinality가 높음 - 여러 Column을 index로 생성 시, Cardinality가 높은 순서로 구성하면 탐색 속도가 빨라짐 - table column 순서 : [Diamond] [석탄]. Unique한걸 sql이 먼저 찾음 - SHOW INDEX FROM [TABLE NAME] 으로 Cardin.. 2022. 6. 21.
[MySQL] MySQL access denied 오류 해결 mysql 에 root 계정 하나만 만들어 놓고 쓰다가... 에러 먹어 과히 고생하고 마음 아파 쓰는 글. [Error] 28000, Access denied for user 'root'@'localhost' using password: YES 아니면 NO 작업용 계정에 문제가 생기면 mysql root 계정에서 관리자 권한으로 들어가 해결 가능하나, root 계정에 문제가 생기면? 거진 reinstall 밖에 답이 없다. 근데 reinstall 하면 내 database는? 수십만개의 data는? 내 이틀의 시간은? 리눅스라면 reinstall 해도 database가 계속 남아있어 재사용 가능하다는 구석 글을 봤으나, win은 그런 글이 없다. database 파일 or 폴더를 따로 빼놓고 MySQL만 .. 2022. 6. 14.
[MySQL] MySQL data 중복 제거 (DISTINCT, GROUPBY) 제거하기 전 혹시 모르니 table을 복사하자 CREATE TABLE [복사할 TABLE NAME] LIKE [원본 TABLE]; INSERT INTO [복사할 TABLE] SELECT * FROM [원본 TABLE]; DISTINCT : 중복 제거. 정렬 X DELETE DISTINCT [FIELD] FROM [TABLE] WHERE [조건]; GROUPBY : 중복 제거. 정렬 O DELETE FROM [TABLE] WHERE [INDEX NAME] IN (SELECT MIN( [INDEX NAME] ) FROM [TABLE NAME] GROUP BY [중복 제거할 COLUMN_1], [중복 제거할 COLUMN_2] HAVING COUNT(*) > 1) 여기서 INDEX 는 AUTO_INCREMENT.. 2022. 6. 9.
[DB] MySQL DB 백업 및 복구 크롤링 작업으로 저장해둔 mysql table의 db가 replace 되어 날아갔다... 복구를 시도하기 전 미리 알았으면 유용했을 것을 적어둔다. 1) cmd 열기 2) MySQL 의 bin 폴더 위치 파악하기. 보통 C:\Program Files\MySQL\MySQL Server 8.0\bin 에 있음 3) bin 폴더 경로로 이동. bin 폴더로 이동하는 이유? mysqldump 파일이 있어야 백업이 되기 때문 cd [MySQL bin 폴더 위치] cd C:\Program Files\MySQL\MySQL Server 8.0\bin 4) 명령어 입력 mysqldump -u [user 이름] -p [database 이름] > [database 백업할 파일 이름].sql Enter password : [.. 2022. 6. 1.