Program2.0

mysql>show valiables : mysqladmin

Posted by: spaceufo on: August 2, 2008

» From database.sarang.net…


mysqladmin -u root -p variables(※mysql>show valiables)

  • ansi_mode : on으로 되어있으면 –ansi로 시작된 것이다.
  • back_log
    • mysql이 가지는 현저한 커넥션요청수
    • 메인 mysql 스레드가 짧은시간에 매우 많은 커넥션이 일어났을때 생기며, 이때 그러한 커넥션을 체크하고 새로운 스레드를 생성시키기위해 생기지만 이러한 현상은 극히 적게 발생하는 것이다.
    • back_log 는 mysql이 순간적으로 새로운 요청에 답변하는 것을 멈추기전 짧은 시간동안 얼마나 많은 요청들이 쌓일 수있는지 알려준다. 만약, 짧은 시간동안 많은 수의 커넥션이 생길것을 예상한다면 back_log를 증가시켜주어야 한다.
    • back_log를 다른말로 표현하면 들어오는 TCP/IP커넥션에 대해서 귀기울이는 큐의 수이다.
    • 사용자OS마다 이러한 큐의 사이즈에 한계가 있다.
    • 따라서, 자신들이 가지고 있는 OS의 메뉴얼을 참고하여 최대치가 얼마인지 확인하여야 한다. 또한, 자신의 OS시스템이 가지는 한계치보다 높게 back_log를 가지면 효가가 없다.
  • basedir : mysql이 설치된 기본 디렉토리
  • bdb_cache_size
    • bdb테이블에 대한 rows와 인데스 케쉬에 할당된 버퍼
    • bdb테이블을 사용하지않는다면 시작할 때 –skip-dbd로 시작해야 이러한 케쉬에 대해 메모리를 낭비하지 않는다
  • bdb_log_buffer_size
    • dbd테이블의 인덱스와 rows를 케쉬하는데 할당된 버퍼
    • bdb테이블을 사용하지않는다면 시작할 때 –skip-dbd로 시작해야 이러한 케쉬에 대해 메모리를 낭비하지 않는다
  • bdb_home : –dbd-home옵션으로 설치했을대 나타나는 버클리디비 홈디렉토리
  • bdb_max_lock
    • 긴 트랙잭션이나 mysql이 쿼리계산시에 많은 rows를 검사해야만 할때, lock테이블이 12개의 에러혹은 lock이 가능하지 않는 dbd타입의 에러가 발생되면 bdb_max_lock를 증가시켜야한다.
    • 디폴트는 1000이며 bdb테이블을 활성화시킬수있다
  • bdb_logdir : –bdb-logdir 옵션을 주었을때 나타난다
  • bdb_shared_data : –bdb-shared-data을 사용하면 on된다
  • bdb_tmpdir : –bdb-tmpdir옵션을 주었을 때
  • binlog_cache_size.
    • 트랜젝션동안 binary log에 대해 sql문을 잡고있는 케쉬사이즈
    • 큰 다중문 트랜젝션을 빈번히 사용한다면, 이 사이즈를 높게잡아 퍼포먼스를 증가시킬수있다
    • 자세한 것은 BEGIN/COMMIT/ROLLBACK Syntax를 참조하라
  • character_set : 디폴트 문자셋(현재 세팅한)
  • character_sets : 지원하는 모든 문자셋
  • concurrent_inserts
    • 디폴트로 on되어있으면 mysql은 select하는 동안에 동시에 myisam테이블에 insert를 사용할 수있도록한다
    • 시작시 off로 하려면 –safe or –skip-new로 해주어야 한다
  • connect_timeout : mysqld server가 Bad handshake에 반응하기전 연결된 패킷에 대해 기다리는 시간(초)
  • datadir : mysql 데이타가 들어있는 홈디렉토리
  • delay_key_write
    • (디폴트로 )on되어있으면 mysql은 delay_key_write option을 테이블생성에 honor(??)한다
    • 이 옵션과 함께 테이블에 대한 key buffer는 모든 인덱스 update시에 flush하지 않고 테이블이 잠겨질때만 flush한다
    • 이것은 key가 많을때 쓰기 속도를 높일 수있으나, 이를 사용하려면 myisamchk –fast –force함께 모든 테이블에 자동 체크를 추가하여야 한다.
    • mysqld를 –delay-key-write-for-all-tables option으로 시작하면, 모든 테이블들이 마치 the delay_key_write option으로 생성된 것으로 취급된다.
    • mysqld를 –skip-new or –safe-mode로 시작함으로써 이런 flag를 없앨수 있다.
  • delayed_insert_limit
    • delayed_insert_limit rows를 삽입한 후에 INSERT DELAYED handler는 어떠한 select문들이 해결되지 않았는지 체크한다
    • 만약 해결되지않은 select문들이 있다면 실행한다.
  • delayed_insert_timeout : INSERT DELAYED thread는 얼마나 오래동안 종료되기전 insert문들을 기다려야 하는지를 나타낸다.
  • delayed_queue_size
    • INSERT DELAYED를 처리하는데 할당된 rows의 queue사이즈
    • queue가 풀되면 INSERT DELAYED를 행하는 클라이언트는 queue에 다시 여유가 생길때까지 기다릴 것이다.
  • flush : –flush option으로 시작된 mysql은 on으로 표시된다
  • flush_time
    • non-zero value로 세팅되면 매번 flush_time시 모든 테이블이 닫히는 것을 기다린다.
      (디스크에 resources and sync things를 비우기 위해)
    • 작은 리소스를 가지는 Win95, Win98에서 이러한 옵션을 사용하기를 추천한다.
  • ft_min_word_len
    • FULLTEXT index에 포함된 최소문자길이
    • 이 값을 바꾼후에는 FULLTEXT index를 재생성해야만 한다
  • ft_max_word_len
    • FULLTEXT index에 포함된 최대문자길이
    • 이 값을 바꾼후에는 FULLTEXT index를 재생성해야만 한다
  • ft_max_word_len_sort
    • REPAIR, CREATE INDEX, or ALTER TABLE에서 빠른 인데스 재생성에 사용되는 FULLTEXT index의 최대문자길이
    • 문자길이가 길면 길수록 늦게 insert된다.
    • thumb규칙은 다음과 같다.
      • ft_max_word_len_sort를 증가시킬때 mysql은 temporary files을 더크게 생성하고 (따라서, disk I/O로 인해 프로세스가 줄어든다)
      • one sort block에 더적은 keys를 둘것이다 (이것은 효율성을 저하시킨다)
      • ft_max_word_len_sort가 너무 작을 때, 대신 mysql은 인덱스에 많은 단어들을 천천히 insert하지만, 짧은 단어들은 매우 빠르게 입력한다.
      • 이것은 단지 EPAIR, CREATE INDEX, or ALTER TABLE동안 인덱스를 재성시 적용된다
  • ft_boolean_syntax
    • List of operators는 MATCH … AGAINST(… IN BOOLEAN MODE)의해 지원된다.
    • MySQL Full-text Search참조
  • have_innodb
    • InnoDB tables을 지원할 시에 YES가 되고, –skip-innodb사용하면 disalbed된다
  • have_bdb
    • Berkeley DB tables을 지원할 시에 YES가 되고, –skip-bdb사용하면 disalbed된다
  • have_raid
    • mysqld가 RAID option을 지원하면 YES
  • have_openssl
    • mysql이 the client/server protocol상에서 SSL (encryption:암호화)를 지원하면 YES로 나타난다
  • init_file
    • 서버를 시작할때 –init-file option를 지정할 때 나타는 파일 이름
    • 서버가 시작시에 이파일을 실행하기를 원하는 sql문 파일이다
  • interactive_timeout
    • 서버가 close전에 상호작용할 커넥션에 activity를 기다리는 시간(초)
    • 상호작용하는 클라이언트는 mysql_real_connect()에 CLIENT_INTERACTIVE option를 사용하는 클라이언트로 정의된다
    • wait_timeout를 참조하라
  • join_buffer_size
    • 인덱스를 사용하지않는 full 조인에 사용되는 버퍼사이즈
    • 이 버퍼는 두개의 테이블사이에 각각의 full조인에 대한 유일한 시간이 할당된다
    • 인덱스를 추가하는 것이 불가능할때 더 빠른 full조인을 하기위해 증가시켜라
    • 보통 빠른 조인을 수행하는 최상의 방법은 인덱스를 추가하는 것이다
  • key_buffer_size
    • 인덱스 블럭은 모든 쓰레드에의해 완화되어지고 공유되어진다.
    • key_buffer_size는 인덱스블럭에 사용되어지는 버퍼사이즈이다.
    • 인덱스를 더 잘 다루기위해 허용된 만큼 많이 이것을 증가시켜라.
    • 256M에 64M를 할당하는 것이 주로 mysql에서 일반화 되어있다.하지만,당신의 시스템의 50% 이상 커진다면, 시스템이 페이징하면서 굉장히 느려진다.
    • mysql이 데이타를 읽는데 케쉬하지 않기 때문에 show status와 show varibles를 사용하여 Key_read_requests, Key_reads, Key_write_requests, Key_writes를 검사하고 key buffer의 퍼포먼스를 체크하는 것을 명심하라.
    • Key_reads/Key_read_request율은 보통 0.01보다 작아야한다.
    • updates/deletes를 대부분 사용한다면 Key_write/Key_write_requests가 1에 가까워지는게 일반적이고, 동시에 update를 많이하거나 delay_key_write를 사용한다면 Key_write/Key_write_requests는 작아진다.
    • ※기본은 16M이다.
      • Key_buffer_used*1024(byte)에 2~3배면 충분하다
      • SHOW Syntax를 참조하라
      • 동시에 많은 rows를 쓰게하려면 LOCK TABLES를 사용하라
      • LOCK TABLES/UNLOCK TABLES Syntax를 참조하라
  • language : 에러메세지에 사용되는 언어
  • large_file_support : big file support로 mysql이 컴파일되을때
  • locked_in_memory : mysqld는 –memlock로 메모리에 lock된다면 on
  • log : 시작시 –log로 모든 쿼리를 logging하면 on
  • log_update : 시작시 –update-log하면 on
  • log_bin : 시작시 binary log를 하면
  • log_slave_updates : If the updates from the slave should be logged.
  • long_query_time
    • 하나의 쿼리가 long_query_time(초)보다 길면, Slow_queries counter가 증가될 것이다
    • 시작시 –log-slow-queries를 사용하면, 쿼리는 slow query logfile에 쌓인다
    • The Slow Query Log를 참조하라
  • lower_case_table_names
    • 테이블이름에 1로 세팅되면, 디스크에 lowercase(인쇄)되어 쌓이며, 테이블이름은 case-insensitive될 것이다
    • Case Sensitivity in Names를 참조하라
  • max_allowed_packet
    • 패킷의 최대사이즈
    • 이 message버퍼는 net_buffer_length bytes에 최기화된다.
    • 하지만, 필요시 max_allowed_packet bytes까지 증가한다. 가능한 잘못된 큰 패킷을 잡기위해 디폴트는 작다
    • biggest BLOB를 사용하기를 원하면 이것을 증가시켜야 하며, 당신이 사용하기 원하는 만큼 커진다.
    • The protocol limits for max_allowed_packet은 MySQL 3.23에서는 16M이고, MySQL 4.0에서는 4G이다
  • max_binlog_cache_size
    • multi-statement transaction가 max_binlog_cache_size의 메모리양보다 큰 메모리를 요청하면에러가 발생
  • max_binlog_size
    • 3.23.33이후에서 가능하며, 주어진 값보다 초과되어 binary (replication) log에 쓰는 것은 log가 rotate된다
    • 1024bytes보다 작거나 1Gbytes보다 크게 할 수없으며, 디폴트는 1Gbytes이다
  • max_connections
    • 동시유저 수
    • 이 값이 mysqld에서 요구하는 file descriptors의 수를 증가하면 이 값을 증가시켜라
    • file descriptor limits와 Too many connections Error를 참조하라
    • ※기본 값은 100이다. max_userd_connections의 두배정도가 적정하다고 한다
  • max_connect_errors
    • 호스트로 부터 interrupted connections수가 많아지면, 이 호스트는 많아진 수부터 block될 것이다.
    • FLUSH HOSTS를 사용하여 unblock할 수있다.
  • max_delayed_threads
    • INSERT DELAYED statements를 다루기 위해 쓰레드수들보다 더 많이 시작시키지 마라.
    • 모든 INSERT DELAYED threads가 사용되어진 이후 새로운 테이블에 데이타를 입력시키면, 그 row는 마치 DELAYED attribute이 지정되지 않은것처럼 입력될 것이다.
  • max_heap_table_size
    • 여기에서 정의 되어진 것보다 더큰 테이블을 heap에 만들지 못한다
  • max_join_size
    • max_join_size 레코드들보다 더 큰것들을 읽으려 조인을 사용하는 것은 에러를 발생시킨다.
    • where절이 없고, 오래걸리는 조인과 많은(수백만)rows를 반환하려는 유저가 있으면 이것을 세팅하라
  • max_sort_length
    • BLOB or TEXT values를 정렬할때 사용되는 수(bytes)
    • (only the first max_sort_length bytes of each value are used; the rest are ignored).
  • max_user_connections
    • 하나의 유저당 활성화된 커넥션수(0 = no limit).
  • max_tmp_tables
    • 클라이언트가 동시에 열수있는 임시테이블의 최대수
  • max_write_lock_count
    • After this many write locks, allow some read locks to run in between.
  • myisam_bulk_insert_tree_size
    • MySQL은 bulk inserts를 하기위해 특별한 트리구조의 케쉬를 사용한다
      (예: INSERT … SELECT, INSERT … VALUES (…), (…), …, and LOAD DATA INFILE)
    • 이것은 쓰레드당 bytes에 케쉬 트리 사이즈를 제한한다.
    • 0으로 세팅하면 이 최적화는 disable된다
    • 디폴트는 8MB이다
  • myisam_recover_options
    • –myisam-recover option를 사용하였을때
  • myisam_sort_buffer_size
    • REPAIR를 사용하는 인덱스를 정력하거나 CREATE INDEX or ALTER TABLE과 함께 인덱스를 만들때 할당되는 버퍼사이즈
  • myisam_max_extra_sort_file_size
    • fast index creation를 위해 temporary file를 생성하는 것이 key cache보다 더 커진다면 key cache method가 우선한다
    • 이것은 인덱스를 생성하기위해 slower key cache method를 사용하는 large tables에서 long character keys에 주로 사용된다
    • 이 parameter는 Mbytes이다
  • myisam_max_sort_file_size
    • temporary file은 최대사이즈는 인덱스(mysql이 REPAIR, ALTER TABLE or LOAD DATA INFILE동안)를 재생성하는 동안 사용되도록 허락한다.
    • 파일사이즈는 이것보다 더 클것이며, 인덱스는 slower key cache를 통해 생성될 것이다.
    • 이 parameter는 Mbytes이다
  • net_buffer_length
    • communication buffer는 쿼리사이에 이 사이즈를 다시 세팅하여야 한다
    • net_buffer_length가 보통 바뀌지는 않지만, 당신이 매우 작은 메모리를 가지고 있다면 이것을 기대된 쿼리사이즈를 세팅할 수있다.
    • (클라이언트에 의해 보내진 sql문의 기대된 길이이다. sql문이 이 길이를 초과한다면, 버퍼는 max_allowed_packet까지 자동적으로 커진다)
  • net_read_timeout
    • 읽기가 안되기전 커넥션으로 부터 더 많은 데이타를 기다리는 시간(초)
    • 커넥션으로부터 데이타를 기대하지 않을때는 이 타임아웃은 rite_timeout으로 정의된다
    • lave_read_timeout참조하라
  • net_retry_count
    • communication port에 읽기가 방해된다면, 이것은 포기하기전에 많은 수를 재시도한다.
    • 이것은 internal interrupts가 모든 쓰레드에 보내짐으로써 FreeBSD에서 꽤 높게 나타난다
  • net_write_timeout
    • block이 쓰기를 회피하기전에 커넥션에 쓰여지기를 기다리는 시간(초)
  • open_files_limit
    • 이 값이 “0″이면 mysqld는 max_connections*5 또는 max_connections + table_cache*2 (whichever is larger) number of files이 필요하다
    • mysqld가 “Too many open files”에러를 나타내면 이 값을 증가시켜야 한다.
    • open_files_limit “0″이 아니면 mysqld는 file descriptors가 setrlimit()를 사용하도록 바꾸기위해 이것을 사용한다
    • open_files_limit “0″이면, mysqld는 max_connections*5
  • pid_file : –pid-file pid 파일위치
  • port : mysql포트넘버 (디폴트 3306)
  • protocol_version : The protocol version used by the MySQL server.
  • record_buffer
    • 일련의 연속적인 스캔을 하는 각각의 쓰레드는 쓰레드가 스캔하는 버퍼사이즈를 할당한다
    • 많은 연속적인 스캔을 할경우 이값을 증가시키기를 원할 수있다.
  • record_rnd_buffer
    • 정렬된 순서대로 rows를 읽을때 rows는 디스크찾기를 하지않고 이 버퍼를 통해 읽는다
    • 세팅해놓지않으면 record buffer에서 세팅된값이다
  • query_buffer_size
    • 쿼리버퍼의 초기 할당
    • 대부분의 쿼리가 (like when inserting blobs) 길다면 이값을 증가시켜야만 한다
  • safe_show_databases
    • 유저가 어떤 데이타베이스권한도 테이블의 권한도 가지지 않는 데이타베이스를 보여주지 마라
    • 이것은 만약 당신이 다른 유저들이 가지고 있는 데이타베이스를 볼 수있는 사람들에 대해 걱정한다면 보안을 향상시킬수있다
    • skip_show_databases를 참조하라
  • server_id : –server-id option의 값
  • skip_locking : 만약 mysqld가 외부 lock을 사용한다면 off이다
  • skip_networking : local(socket)커넥션만을 허락한다면 on이다
  • skip_show_databases
    • PROCESS_PRIV권한을 가지지 않는 사람들이 SHOW DATABASES를 못하게 한다
    • 만약 사람들이 다른 유저들이 가지고있는 데이타베이스를 보는 것을 걱정한다면 이것은 보안을 향상시킨다
    • safe_show_databases참조
  • slave_read_timeout : 읽기가 실패하기전 master/slave연결로 부터 더 많은 데이터를 기다릴 수있는 시간(초)
  • slow_launch_time : 쓰레드 생성이 이 값보다 더 길다면(초당), Slow_launch_threads counter는 증가될 것이다
  • socket : 서버에 의해 사용되는 Unix socket /[절대경로]/이름
  • sort_buffer
    • 정렬을 필요로 하는 각 쓰레드는 버퍼사이즈를 할당한다.
    • 더 빠른 ORDER BY or GROUP BY operations를 위해서 이 값을 증가시켜라.
    • section A.4.4 Where MySQL Stores Temporary Files를 참조하라
    • ※sort_buffer와 record_buffer
      • sort_buffer와 record_buffer의 합이 8M가 넘지 않도록 주의한다
      • (sort_buffer+record_buffer)*max_connections가 자신의 램보다 크지 않도록해야 한다.
  • table_cache
    • 모든 쓰레드들에 대한 오픈할 수있는 테이블 수
    • 이 값을 증가시키면 mysqld가 필요로 하는 파일 descriptors의 수를 증가시킨다.
    • Opened_tables variable를 체크함으로서 테이블케쉬를 증가시키것이 필요한지 체크할 수있다.
    • SHOW Syntax를 참조하라
    • 이 값이 크고 FLUSH TABLES가 많지않다면(모든 테이블들을 닫고 재오픈하도록 강요하는 것) 그때, 이값을 증가시켜야 한다
    • 테이블케쉬에 더 많은 정보를 얻으려면 How MySQL Opens and Closes Tables를 참조하라
    • mysql서버가 한번에 열수있는 테이블 수라고 한다
    • 기본값은 64인데, max_connections의 1.5배정도 크기로 하는것이 좋다고 한다.
  • table_type : 디폴트 테이블 타입(myisam)
  • thread_cache_size
    • 케쉬를 재사용하기위해 얼마나 많은 쓰래드를 유지해야하는가
    • 클라이언트가 연결이 끊겼을 때, 그 클라이언트의 쓰래드는 이전보다 더 많은 thread_cache_size 쓰레드가 존재하지 않는다면 케쉬에 놓여진다.
    • 모든 새로운 쓰레드들은 먼저 케쉬에서 나오며, 단지 케쉬가 비어있을대 새로운 쓰레드를 생성한다.
    • 이 값은 새로운 연결이 많을 경우 성능향상을 위해 증가시키게 된다.
    • 보통 이것은 좋은 쓰레드수행을 가진다면 현저한 성능향상을 주지는 않는다.
    • connection과 threds_created사이에 차이를 알기위해서는 현재의 쓰레드 케쉬가 당신에게 얼마나 효과적인지 알 수있다.
  • thread_concurrency
    • 솔라리스에서, mysqld는 이 값과 thr_setconcurrency()를 호출할 것이다.
    • thr_setconcurrency()는 application에게 쓰레드시스템에게 동시에 실행되도록 원하는 쓰레드수에 대한 힌트를 준다
  • thread_stack
    • 각 쓰레드에 대한 스택사이즈
    • the crash-me test에 의해 발견된 한계치
    • 디폴트는 normal operation에 대해 충분히 크다.
    • MySQL Benchmark Suite를 참조하라
  • timezone : 디비서버 타임 존
  • tmp_table_size
    • 메모리안에 temporary table이 이 사이즈를 초과하면 mysql은 자동적으로 temporary table을 디스크에 MyISAM table으로 변환할 것이다.
    • 당신이 많은 advanced GROUP BY queries과 많은 메모리를 가지고 있다면 이 값을 증가시켜라
  • tmpdir : temporary files 과 temporary tables를 사용할 수있는 디렉토리
  • version : mysql서버 버젼
  • wait_timeout
    • 서버를 닫히기전에 연결을 활성화하는데 서버가 기다리는 시간(초)
    • interactive_timeout를 참조하라

Leave a Reply

Spaceufo’s Twitter

Social code

Site Meter
Join My Community at MyBloglog!Add to Technorati Favoritesfree web stats Blog Ratings
My BlogCatalog BlogRank
마가린 바르기 bookmarkr.net metags WZD.com 네이버에 북마크 다음에 북마크 HanRSS에 북마크하기 이올린에 북마크하기 Pumfit에 글 올리기 del.icio.us에 북마크하기
Bookmark and Share