SEARCH
TOOLBOX
LANGUAGES
Mysql

Mysql

From Chaehyun

(Difference between revisions)
Jump to: navigation, search
(innoDB perge 관련)
(innoDB perge 관련)
Line 13: Line 13:
* show innodb status 하면 innoDB monitor output을 볼 수 있음
* show innodb status 하면 innoDB monitor output을 볼 수 있음
** History list length 값이 바로 purge_lag의 값임
** History list length 값이 바로 purge_lag의 값임
 +
 +
== data 옮기기 ==
 +
* data를 삭제하기 보다는 새로 insert를 하는 게 더 낫다
 +
* select ~ where~ into outfile "output"
 +
* loaddata infile "table" into table Document
 +
** insert 보다 30배 빠르다는데?
 +
** unique 확인을 끄는 설정을 켜면 더 빠름
 +
* mysqldump의 경우, sql로 만드므로, dump file이 커지고, data를 넣을 때, insert를 실행하기 때문에 느리다
 +
 +
== 설정 값 바꾸기 ==
 +
* show global variable;
 +
* set global innodb_max_perge_lag = 0
 +
** 이러면 바뀜
 +
 +
== disk 상태 보기 ==
 +
* iostat -k 1

Revision as of 14:15, 14 June 2011

  • mysql innodb status
    • History list length 1616091 ??

Contents

innoDB perge 관련

  • innoDB 에서는 sql에 의해 row를 지우더라도, 실제 database에서 row가 즉시 물리적으로 삭제 되지 않음
  • 삭제를 위한 undo log record가 innodb에서 버려졌을 때, 그제서야 해당되는 row와 index rocord를 db에서 물리적으로 삭제함
  • 이러한 삭제 작업을 purge라고 칭함. 그리고 이 purge 작업은 굉장히 빠르고, 보통은 sql의 삭제와 동일한 time order를 가짐
  • my.cnf
  • innodb_max_purge_lag = 8192
    • http://dev.mysql.com/doc/refman/5.0/en/innodb-parameters.html
    • purge 작업이 지체되었을 때, 얼마나 기다릴 것인지 조절하는 설정
    • 기본은 0임. (delay 없음)
    • 값이 있을 때는, ((purge_lag/innodb_max_purge_lag)×10)–5 milliseconds 만큼, insert, update, delete 작업을 delay 시킨다.
  • show innodb status 하면 innoDB monitor output을 볼 수 있음
    • History list length 값이 바로 purge_lag의 값임

data 옮기기

  • data를 삭제하기 보다는 새로 insert를 하는 게 더 낫다
  • select ~ where~ into outfile "output"
  • loaddata infile "table" into table Document
    • insert 보다 30배 빠르다는데?
    • unique 확인을 끄는 설정을 켜면 더 빠름
  • mysqldump의 경우, sql로 만드므로, dump file이 커지고, data를 넣을 때, insert를 실행하기 때문에 느리다

설정 값 바꾸기

  • show global variable;
  • set global innodb_max_perge_lag = 0
    • 이러면 바뀜

disk 상태 보기

  • iostat -k 1
Retrieved from "http://chaehyun.kr/w/Mysql"