IT/SQL 13

[mariaDB] 7~8초 걸리던 select 쿼리 빠르게 하기

실 서비스중인 모바일 페이지가 있는데, 특정 페이지를 진입하면 로딩이 너무 느려진다고 클레임이 들어와서 확인하게 된 쿼리이다. (정말 더럽게 짜여져있는 레거시 페이지라 하나 하나 지우면서 분석했다. 물론 내가 만든건 아니다.) 아래와 같은 쿼리였는데 JOIN 도 없고 단순히 테이블 한곳에서 Select 해서 가져온다. 쿼리에서 대충 짐작 할 수 있다시피 , 그냥 단순히 특정 회원에게 알림이 쌓이는 테이블이고, read_date 에 읽은 날짜가 기입되고, 읽기전에는 0000-00-00 식으로 기본으로 박혀있다. SELECT COUNT(*) FROM TABLE WHERE del_yn = 0 #사용여부 AND user_id = "111111" #회원 고유 ID AND read_date = "0000-00-00..

IT/SQL 2023.06.23

[mariadb] 이벤트 스케줄러 관련 상태확인, created문 메모

환경 : Centos8, MariaDB10.5.13 이벤트 스케쥴러 작성 후에 정상적으로 작동하지 않는 문제가 있어서 찾아보니 결국은 event_scheduler 상태가 NO 로 되어있었다. #조회 SELECT @@global.event_scheduler; 그때 분명히 쿼리로 SET GLOBAL event_scheduler = ON; 실행을해서 ON 을해줬는데 왜 갑자기 OFF 가 됐을까 ..? 중간에 DB 재시작된적이 있었나 .. 여튼 이번엔 그냥 mysql config 파일에다가 확실히 명시를 해주었다. my.cnf 가 어디있는지 모르겠으면 그냥 리눅스에서 검색해서 찾자 find / -name "my.cnf" 나의 경우엔 /etc/mf.cnf 이었다. 찾아보니 [mysql] 밑에다가 추가해주라길래 추..

IT/SQL 2022.01.01

[Mysql Charset] utf8 에서 utf8mb4 로 변경시

바로 전 포스팅에서 utf8 => utf8mb4 변환 방법을 소개했다. https://bug41.tistory.com/141 [Mysql/MariaDB] Insert 에러 Incorrect string value: '\xF0\x9F\x91\xB7\xF0\x9F...' for column \xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\xA4 이게 뭔데 에러가 나는가 ? 흔히들 우리 휴대폰에서 자주 쓰는 "이모지 😁 😤" 가 유니코드화 된것. 4byte 로 구성되있음 UTF-8 문자 집합은 1~4 바이트까지.. bug41.tistory.com 근데 그건 일단 my.cnf 에서 설정을 한거고, 기존에 있는 DB 들 테이블들 charset 이 바뀐건 아니다. 암만 서버쪽 m..

IT/SQL 2021.10.01

[Mysql/MariaDB] Insert 에러 Incorrect string value: '\xF0\x9F\x91\xB7\xF0\x9F...' for column

\xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\xA4 이게 뭔데 에러가 나는가 ? 흔히들 우리 휴대폰에서 자주 쓰는 "이모지 😁 😤" 가 유니코드화 된것. 4byte 로 구성되있음 UTF-8 문자 집합은 1~4 바이트까지 저장이 가능하게 설계가 되어있지만, MySql/MariaDB 에서의 UTF-8 은 3바이트 자료형으로 설계가 되었기 때문에, 최근에 나온 4바이트 문자열을 저장하려고 하면 에러가 발생하게됨 그래서 해결방법은 ? Mysql 버전 5.5.3 이후에서부터 데이터베이스 chartset을 utf8 을 utf8mb4 로 변경해주면 문제를 해결할수 있음. ** Linux - mariadb 설정파일의 경우 대부분 /etc/my.cnf 에 위치, cnf 같은 파일 ..

IT/SQL 2021.09.29

[mariaDB] root 비밀번호 분실시 변경 방법

ㅋㅋㅋ 포스팅 하면서도 어이가없다 내가 세팅한 비번 내가 까먹다니 .. 반성 .. // 먼저 실행되는 mariadb 종료 systemctl stop mariadb //환경설정 root 비밀번호 없이도 진입 가능하게끔 systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" //다시 실행 systemctl start mariadb //mariadb 진입 mysql -uroot -p //DB 선택 use mysql; //비밀번호 업데이트 UPDATE user SET password = password('아힝흥헹힝') WHERE user = 'root'; //변경사항 적용 FLUSH PRIVILEGES; // 또 mariadb 종료 systemctl stop ..

IT/SQL 2021.06.08

[Sqlite] PHP + Sqlite DB파일 생성 CREATE, ALTER, SELECT 등등

나중에 까먹을까봐 기록해두는 sqlite select, insert, update 는 사실 자주 쓰여서 까먹을일이 없는데 컬럼으로 존재여부 확인하고 alter 시키는건 기록 ~! //db 폴더로 경로 설정 $path = "./db"; //db 폴더 존재하지 않으면 생성 if (!is_dir($path)) { mkdir($path, 0777, true); } //db 폴더 내부에 test.db 라는 파일 있는지 체크 $is_file_exist = file_exists('./db/test.db'); //db 폴더 내부에 test.db 라는 파일 없으면 생성 if(!$is_file_exist){ fopen("./db/test.db","w"); } //sqlite DB 연동 $DB = new SQLite3('...

IT/SQL 2021.04.14

[SQL] sqlite 오류 query(): near "fc" / sqlite database is locked

1. query(): near "fc" " = 큰따옴표 데이터 어딘가에 ' 가 들어가있어서 생기는 문제 잘.. 찾아보자 2. sqlite database is locked 해결방법으로 sqlite db 파일을 다른 디렉토리에 옮기면된다 라는 글을 보고 문득 생각이든게 물고있어서 그런가?? 이게 말이되나?? 싶어서 혹시나 싶어 디렉토리 그대로 두고, SQLite 프로그램 끄고 가동시켜보니 잘된다 프로그램 켜있을때는 db 파일을 물고있어서 database locked 증세가 뜨는듯함

IT/SQL 2020.11.20

[SQL] sqlite 설치 및 사용

sqlitebrowser.org/dl/ Downloads - DB Browser for SQLite (Please consider sponsoring us on Patreon 😄) Windows Our latest release (3.12.1) for Windows: Windows PortableApp There is a PortableApp available, but it’s still the previous (3.12.0) release version. It should be updated to 3.12.1 over the next few sqlitebrowser.org 환경에 맞는 설치파일로 설치 진행하시면됩니다. DB Browser for SQLite 파일이 여러개가 생겼는데 거기서 좀 내려보면 ..

IT/SQL 2020.11.19
300x250