본문 바로가기
반응형

MySQL38

[Mysql] 스토리지 엔진 MYISAM / INNODB Mysql의 스토리지 엔진으로 가장 많이 사용하는 MyISAM, InnoDB을 비교해볼 것이다. MYISAM read only 기능에 특화된 엔진으로 select 가 많을 경우에 사용하곤 한다. 항상 테이블에 row count 를 갖고 있기에 가능하고, 풀텍스트 인덱스를 지원한다. 하지만 row level locking이 지원되질 않아 쿼리를 날릴 경우 해당 Table 전체 락이 걸린다. INNODB MYISAM 에서 안되는 row level locking이 가능하여 트랜잭션 처리가 필요한 대량 데이터에 유리하다. 또한 그럼으로써 select 보다는 CUD 의 쿼리에 좀더 장점이다. 역으로 MYISAM 과는 다르게 풀텍스트 인덱스가 지원이 안된다. 트랜잭션 처리가 필요없고 운영에 Read only 기능이.. 2022. 11. 5.
[Mysql] 실행한 query log 확인 및 추적 하는 법 mysql 에서 실행한 쿼리의 이력을 확인해야 할 경우가 있다. 그럴때 사용하는 명령어 이다. select * from INFORMATION_SCHEMA.PROCESSLIST order by id desc limit 100; 그리고 로그파일을 남기는 방법도 있다. 파일 위치 - /etc/my.cnf general_log=ON #쿼리 로그가 출력되도록 설정 general_log_file=/home/mysql_query_log/query.log #로그파일 경로 설정 이후 mysql 재기동 하면 설정이 된다. 2022. 10. 9.
[Mysql] 문자열 추출 및 인덱싱 이전에 다뤘던 포스팅은 문자열에 대한 자르기 추출(substring) 이었다면 이번 포스팅은 문자열의 위치를 나타내주는 함수이다. 추출 관해서는 아래 참고 포스팅을 참고 바란다. INSTR INSTR('문자열','추출문자') 해당 문자열의 index를 추출해준다. 사용법은 아래와 같다. select INSTR('가나다라마','다라마'); //3 LOCATE LOCATE('검색문자','문자열) 해당 문자열의 index를 추출해준다. 사용법은 아래와 같다. select LOCATE('CDE','ABCDE'); //3 참고 포스팅 https://thenicesj.tistory.com/342 [mysql] 문자열 추출 Mysql 에서도 프로그래밍 처럼 문자열을 자를수가 있다. substring substring.. 2022. 10. 6.
[Mysql] 라이센스 오픈소스로 유명하게 알려진 mysql 에 대해서는 많이 들어봤을것이다.oracle과 합병이 되면서 mariadb라고도 알려져있기도 한 이 mysql 은 오픈소스인만큼 많은 이들이게 사용을 당하고 있다. 하지만 오픈소스라고 해서 언제든지 어디서든 누구든 무료로 사용을 할수 있을까?정답은 NO 이다. mysql은 오픈소스이면서 GPL 라이선스를 따르고 있다.라이선스의 종류 및 특징은 아래 참고 포스팅을 참고하길 바란다. mysql의 라이선스는 제품 종류에 따라 GPL과 자체적인 상용 라이선스 두 가지가 적용된다.제품 종류는 무료와 유료로 나뉜다. 무료 버전은 커뮤니티 에디션(Community Edition)이라는 이름으로 되어있고만약 mysql 사용을 영리 목적으로 사용하려면 유료 버전을 써야 한다. 무료 .. 2022. 9. 30.
[Mysql] 문자열 추출 Mysql 에서도 프로그래밍 처럼 문자열을 자를수가 있다. substring substring(문자열, 시작위치, 길이) select substring("ABCDEF",3); //CDEF select substring("ABCDEF",3,2); //CD select substring("ABCDEF" from 3); //CDEF select substring("ABCDEF" from 2 for 2); //BC left, right left(문자열, 길이) / right(문자열, 길이) select left("ABCDEF",2); //AB select right("ABCDEF",2); //EF substring_index substring_index(문자열, 구분자, 구분자 인덱스) select substr.. 2022. 9. 27.
[Mysql] 에서 데이터를 엑셀 파일로 저장 기존 쿼리에서 추가를 하면된다. INTO OUTFILE '/var/lib/mysql-files/test.csv' -- csv 파일을 출력하고자 하는 경로 CHARACTER SET utf8 -- 언어 타입 설정 FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' -- '|'로 구분하고 구분지운 문자열 타입들을 ""로 감싼다 ESCAPED BY '\\' -- '\\'일 경우 끝 LINES TERMINATED BY '\n' -- 줄바꿈은 "\n"으로 표시 하지만 이렇게 했는데 다음 에러가 나올 경우가 있다. The MySQL server is running with the --secure-file-priv option so it cannot execute this st.. 2022. 9. 25.
[Mysql] error : You are using safe update mode mysql 에서 테이블을 만들고 임의 값을 넣은 후 delete 를 사용하니 다음과 같은 에러가 나오면서 삭제가 이루어 지지 않았다. Error Code : 1175: You are using safe update mode and you tried to update a table without a Where that uses a Key column. 해결 방법은 다음과 같다. set sql_safe_updates=0; sql 안전모드를 해제 해주는것이다. 어디까지나 로컬 피시에서만 작업하길 권장하고 실 운영중인 서버라면 안전모드를 혹시모를 상황에 대비하여 해제하지 않는것이 좋을것이다. 2022. 9. 16.
[Mysql] 백업 및 복원 데이터를 마이그레이션 하거나 서버를 옮기거나 등등 작업때문에 백업 및 복원에 대해서 빈번하게는 아니지만 할일이 생긴다. 전체 DB백업 mysqldump -uroot -p --all-databases >filename.sql 특정 DB백업 mysqldump -uroot -p --databases name > filename.sql 특정 DB복원 mysql -uroot -p name < filename.sql 2022. 5. 20.
[Mysql] now() , sysdate() 차이 mysql에는 다양한 자료형들이 있고 그중에서 많이 사용되는 Date , 날짜 관련 함수이다. now와 sysdate의 차이가 있다. 알고 사용하도록 하자. 필자 역시 뭐 같은거겠거니 하고 사용하였고 많은 이들도 그렇게 생각하고 있을것이다. 하지만 우연히 데이터가 다른것을 발견하고 무슨 차이이지 확인하다가 알게 된 점을 공유한다. 결과만 먼저 말하면 now는 쿼리가 실행되는 순간이고 sysdate는 해당 함수를 호출한 시간을 의미한다. 단순 select에서는 비교할수 없을정도로 빠르게 진행이 되서 비교하기 힘들순 있지만 sleep함수를 넣는다면? 이 사진 한장으로 설명을 마친다. 2022. 5. 13.
반응형