반응형 MYSQL14 [CentOS7] 리눅스 MySql 원격지 에서 또는 로컬에서 dump(덤프) 뜨기! 안녕하세요 깐지꾼지 파파 입니다. 정말 오랜만에 기술블로그를 작성하네요! 각설하고! 바로 본론으로 들어가도록 하겠습니다. 오늘은 리눅스에서 MySql DB 백업을 하기 위한 Shell 스크립트를 공유하도록 하겠습니다. 잘 짠 쉘은 아니지만.. 복붙 해서 사용할 수 있도록 신경 써서 만들었습니다! [Shell Script] 해당 스크립트는 CenstOS 7.8 에서 작성하였습니다. #!/bin/sh PATH=/usr/bin:/bin NAS="백업 경로" DIV="구분" TODAY=$(date +%Y-%m-%d) YEAR=$(date "+%Y") MONTH=$(date "+%m") DAY=$(date "+%d") #fixed value LOG="mysql-script-backup-$(date +%Y-%m-%.. 운영체제 이야기/Linux(CentOS) 2023. 3. 4. [CentOS7] mysql8.x Community server 설치하기 Centos7 + MySQL Community server 8.x 설치 해봅시다. 그동안 블로그에는 늘 5.7버전만 다루다보니.. 이번에 새로 8.x를 설치 하려고 하니 많이 애 먹었습니다... 1. MySQL rpm 패키지 링크 가져오기 dev.mysql.com/downloads/mysql/ MySQL :: Download MySQL Community Server Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle.. 운영체제 이야기/Linux(CentOS) 2021. 4. 8. [MySQL] 커버링 인덱스 커버링 인덱스란?커버링 인덱스란 원하는 데이터를 인덱스에서만 추출할 수 있는 인덱스를 의미합니다. B-Tree 스캔만으로 원하는 데이터를 가져올 수 있으며, 칼럼을 읽기 위해 굳이 데이터 블록을 보지 않아도 됩니다.인덱스는 행 전체 크기보다 훨씬 작으며, 인덱스 값에 따라 정렬이 되기 때문에 Sequential Read 접근할 수 있기 때문에, 커버링 인덱스를 사용하면 결과적으로 쿼리 성능을 비약적으로 올릴 수 있습니다.백문이 불여일견! 아래 테스트를 보시죠.테이블 생성먼저 다음과 같이 테이블을 생성합니다.create table usertest ( userno int(11) not null auto_increment, userid varchar(20) not null default '', nickname.. 데이터베이스 이야기/MySQL 2020. 4. 10. [MySQL] 차집합 이 점을 이용해서 LEFT OUTER JOIN으로 차집합을 구현할 수 있다. 오라클이나 MSSQL과 같은 경우는 EXCEPT 혹은 MINUS 등을 사용하면 되겠지만, MySQL은 버전에 따라 지원하는 경우도 있고 아닌 경우도 있다.test1 테이블의 데이터 중 test2 테이블에 있는 데이터를 제외하고 가져오고 싶다. 위의 테이블에서 JOIN하는 column을 기준으로 1, 2는 test2 테이블에도 있으니 제외하고, 3 | 6만을 가져오고 싶은 경우이다.SELECT * FROM test1 a LEFT JOIN test2 b ON (a.aa = b.aa) WHERE b.aa IS NULL; 3 | 6 | null | null test2.aa에 있는 1, 2의 데이터를 제외한 데이터를 test1.aa에서 .. 데이터베이스 이야기/MySQL 2020. 4. 10. [MySQL] 인덱스 생성 조건 MySQL 인덱스에 관해 정리를 하였습니다. MySQL을 잘 알아서 정리를 한것이 아니라, 잘 알고 싶어서 정리한 것이라 오류가 있을수도 있습니다.1. 인덱스란?인덱스 == 정렬인덱스는 결국 지정한 컬럼들을 기준으로 메모리 영역에 일종의 목차를 생성하는 것입니다. insert, update, delete (Command)의 성능을 희생하고 대신 select (Query)의 성능을 향상시킵니다. 여기서 주의하실 것은 update, delete 행위가 느린것이지, update, delete를 하기 위해 해당 데이터를 조회하는것은 인덱스가 있으면 빠르게 조회가 됩니다. 인덱스가 없는 컬럼을 조건으로 update, delete를 하게 되면 굉장히 느려 많은 양의 데이터를 삭제 해야하는 상황에선 인덱스로 지정된 .. 데이터베이스 이야기/MySQL 2020. 4. 10. [MySQL] 실행계획 본문 바로가기DBMS의 쿼리 실행에 같은 결과를 만들어 내는 데 한가지 방법만 있는 것은 아닙니다. 아주 많은 방법이 있지만 그중에서 어떤 방법이 최적이고 최소의 비용이 소모될지 결정해야 합니다. DBMS에서는 쿼리를 최적으로 실행하기 위해 각 테이블의 데이터가 어떤 분포로 저장돼 있는지 통계 정보를 참조하며, 그러한 기본 데이터를 비교해 최적의 실행 계획을 수립하는 작업이 필요합니다. DBMS에서는 옵티마이저가 이러한 기능을 담당합니다.MySQL에서는 EXPLAIN이라는 명령으로 쿼리의 실행 계획을 확인할 수 있으며, 여기에는 많은 정보가 출력됩니다. 실행 계획에 표시되는 내용이 무엇을 의미하고 MySQL 서버가 내부적으로 어떤 작업을 하는지 자세히 살펴보겠습니다. 그리고 어떤 실행 계획이 좋고 나쁜지.. 데이터베이스 이야기/MySQL 2020. 4. 10. [MySQL] MySQL 쓰면서 하지 말아야 할 것 17가지 *MySQL 쓰면서 하지 말아야 할 것 17가지*권장사항이다. 이것을 이해하면 당신의 어플리케이션이 더 나은 성능을 발휘할 것이다.다만 이것이 사람의 실력을 판단하는 척도로 사용되서는 안 될 것이다. 작게 생각하기- 조만간 규모가 커질거라면 MySQL ecosystem을 봐야된다. - 그리고 캐싱 빡시게 안 하는 메이저 웹사이트는 없다. - develooper.com의 Hansen PT랑 Ilia 튜토리얼 볼 것 - 처음부터 확장 가능하게 아키텍처 잘 쪼개놔야된다. - 복제랑 파티셔닝 어떻게 할지 미리 계획 세워놔라. - 파일 기반 세션 좀 쓰지마 -_- - 그렇다고 너무 쓸데없이 크게 생각하지도 말 것 - 특히 성능하고 확장성 구분 못 하면 난감함 EXPLAIN 안 써보기- SELECT 앞에 EXPLA.. 데이터베이스 이야기/MySQL 2020. 4. 10. [MySQL] MySQL 중복 키 관리 방법 (INSERT 시 중복 키 관리 방법 (INSERT IGNORE, REPLACE INTO, ON DUPLICATE UPDATE) 안내본 문서는 블로그의 운영자인 본인이 Stackoverflow에 올린 답변을 정리한 글입니다.Stackoverflow URLhttp://stackoverflow.com/questions/20342518/on-duplicate-key-update-value-inserting-same-values-twice/20342598질문다음과 같이 INSERT 구문을 사용 중이다.INSERT INTO person VALUES(NULL, 15, 'James', 'Barkely') ON DUPLICATE KEY UPDATE academy_id = VALUES(academy_id); 중복된 값을 여러 번 INSERT한 뒤에 SELECT를 해 보면 중복된 값이 저장되어 있다.mysql> SELECT * FROM person.. 데이터베이스 이야기/MySQL 2020. 4. 10. [MySQL] IFNULL 함수 SELECT test, IFNULL(test,'없음') AS 이름 FROM account_user; 데이터베이스 이야기/MySQL 2019. 5. 9. [MySQL] case 문 select age , case when age >= 10then 100 // age 가 10 보다 크면 100else age // 아니면 ageend age3 // 별명from account_user; 데이터베이스 이야기/MySQL 2019. 5. 9. [MySQL] 날짜형 함수 EXTRACT 요즘 SQLD 를 준비하면서 새로운 사실을 알게되었는데, 그동안 날짜데이터를 가공하는데있어 여러가지 방법으로 가공 및 개발을 해왔지만 역시나 날짜 데이터는 다룰때마다 뭔가 어렵고 가공하기가좀 까다로웠던 것 같은 기억이 떠올랐다. 오늘 책을 보다가 알게된 ORACLE 및 MySql 에서 지원하는 EXTRACT 함수를 로컬에서 테스트해보았다. (MS SQL 에서는 DATEPART 함수 사용) SELECT EXTRACT(YEAR FROM regidate), EXTRACT(month FROM regidate), EXTRACT(day FROM regidate) FROM account_user; 위 쿼리는 참고용이다. 결과는 아래와 같다. 그동안 화면에 년, 월, 일 을 출력할때 백단에서 SUBSTRING 또는 다.. 데이터베이스 이야기/MySQL 2019. 5. 9. [MySQL] UTC(GMT) 저장/전환 원하는 방향기본 저장을 UTC로함어려움점현재 저장된 KST기본 날짜를 모두 수정해야함환경설정이 바뀔 경우 mysql내부적으로 모두 변환해주는지 파악 필요이 후 운영시DB에서 data조회시 일일이 변환하여야함 고객 문의시 DB에서 직접 조회하는 경우 시간정보를 헷갈려서 잘못추적하는 오류 발생 : 실제 이전회사에서 종종 있었던 일필요시 변경 장점단점query시 변경프로그래밍이 편함query에 locale를 전달해주는방법 필요query후 프로그램에서 변경query가 편함 ,조건 비교시 계산이 어려울 수 있음참고 자료Java에서 utc,gmt변경이 자유로울 것으로 예상됨 : Java8에 추가된 Date현재 상황기본 저장이 KST(GMT+9)로 되어 있음Sytem(OS)가 KST이므로 이를 감싸서 처리하는 wra.. 데이터베이스 이야기/MySQL 2019. 4. 29. 이전 1 2 다음 💲 추천 글 반응형