mysqldump - dump & restore

mysqldump 덤프뜨기 위의 명령 실행시, 저장프로시저, 트리거 함수, 스키마가 sql로 만들어 진다.   **mysqldump 덤프복원**   명령 실행전, 사용할 계정을 만들고 디비를 만들고 계정의 접근과 계정과 DB를 연결해 줘야 한다. 참고 : http://link2me.tistory.com/431 실행시, 다음과 같은 에러가 뜰 경우, /etc/my.conf 에 log-bin-trust-function-creators=1 을 추가하고 mysql을 재시작 한다. his function has none… Read More

[pull request] spgen, generate mysql stored procedure

앞서서, 프로시저에 대한 이야기 ORM 이 추세이긴 하지만 여전히 사용하는 곳이 있다. 물론 로직이 숨어 있다는 문제, 가독성이 떨어지는 문제가 있지만 여전히 성능면에서는 최고의 방법이 아닌가 싶다.(이견이 있으시다면 댓글로,, 댓글구걸) 현재 회사에서는 모든 데이터베이스 관련된 로직은 저장 프로시저(Stored Procedure) 방식으로 구현되고 있다. 개인적으로 이전 회사에서는 이런식으로 작업을 하지 않았고, ORM을 이용하거나 작은 프로젝트… Read More

[DB] mysql 덤프 및 복구

테이블락이 걸렸다. 왜 걸렸는지 살펴보니 로그 db 가 MYISAM 방식으로 되어 있어서 생긴 문제였다. 이미 수많은 로그를 뒤로하고 운영중인 DB 를 백업해서 INNODB로 변경해서 다시 만들까도 생각해봤지만, 그럴바엔 차라리 mysqldump 를 사용해서 운영서버가 아닌 개발 서버로 옮겨서 분석 작업을 하는게 나을것 같았다. mysqldump는 서비스에 상관없이 데이터 및 구조를 가져올수가 있다. 나 같은 경우는 매월 데이터를… Read More

python mysqldb DictCursor 이용하기

아무래도 제일많이 사용하는게 mysql 이고 python 으로 연동하기 위해서 MySQLdb 를 사용하는데 맨날 기존 cursor를 이용해서 데이터를 가져오곤 했다.  ((2L, ‘test’, ‘Test’, ‘{test}’, datetime.datetime(2015, 1, 6, 13, 26, 45), (..)) 그러다 보면 위의 결과처럼 튜플(tuple)의 형태로 나오게 되는데 사실 컬럼명이 필요한 경우들이 있다. 예를들면, 공통적으로 저장프로시저를 호출하고 결과를 리턴하는 함수를 만들때는 프로시저에… Read More

(stackoverflow) how to improve select performance in mysql?

StackOverflow 를 자주 이용해 오진 않았지만 최근에는 다른 개발자들의 이야기를 들어 보기 위해서 내가 해결한 어떤 문제라고 할지라도 올려서 물어보고 있다. 영어 공부가 된다고 생각하지는 않지만 물어보기 영어 레벨은 올라갈듯. 결국 검색도 실력.  how to improve select performance in mysql? 제목 그대로다. 어떻게 하면 select 성능을 향상 시킬수 있을까? 링크에 들어가서 보면 알겠지만 물어본 것은… Read More

(sql) Distinct 중복제거

SQL 쪽 공부를 최근에 벼락치기로 했는데, Distinct 에 대해서 약간의 이해가 안되서 정리할겸 올린다. 용어를 찾아보면 중복제거라고 하는데, 말 그대로다. 반대로 all 이라는 것이 있는데 이건 select 문에서 아무것도 지정하지 않아도 되는 것이다.  예를 들어, 아래의 sql의 실행했다고 가정해 보자.  select age, name from test  age name   1 ash84   1 ash84   10 tom   10  tom… Read More

(mysql) mysqldump 을 이용한 백업 스크립트

mysql 에 데이터가 쌓이다 보면 확실히 정해야 하는것중 하나가 백업 정책인것 같다. 특히 스타트업이나 개인 프로젝트에서 서버를 임대해서 사용하는 경우, 서버용량에 제한이 있다보니 어느정도 데이터가 쌓이다 보면 백업에 대해서 고려하지 않을수가 없다. 내가 세운 백업정책은 1일 1백업, 즉 일일백업인데, 사실 아직은 데이터가 많지 않은 상황에서 할수 있는 무식한 방법이다. 아래는 mysqldump를 사용한 백업 스크립트인데, 매일… Read More

(mysql) insert 시간 자동 추가하기

데이터베이스 입력 시간이 중요할때가 있다. 예를 들면, 어떤 데이터를 수집한다고 할때, 일별 혹은 시간별 데이터를 뽑기 위해서는 입력시간 컬럼을 넣어주는 것이 필요하다. 프로그램상에서 Date 형으로 넣어 줄수도 있겠지만, SQL 은 짧으면 좋다고, INSERT OR UPDATE 시 자동으로 시간을 추가하는 방법을 사용하면 더 좋은것 같다.  1. TIMESTAMP 컬럼 추가.  – 원하는 테이블, 즉 INSERT, UPDATE 가 발생하는… Read More

(mysql) Data truncation: Data too long for column 'xxx' at row 1

(adsbygoogle = window.adsbygoogle || []).push({}); mysql 데이터 넣는 부분에서 발생한 문제인데 xxx 는 내가 지정한 컬럼명이다.  Data truncation: Data too long for column ‘xxx‘ at row 1 xxx 에 들어갈 데이터가 너무 크다는 이야기. TEXT 형으로 잡았었는데, 문제가 생겨서 보니 해당 필드는 어떤 웹 페이지 전체가 들어가는 컬럼이었다. TEXT도 적을까 해서 일단은 LONGTEXT 라는 형이 있어서… Read More