2014-01-24 2 views
0

2 억 개의 레코드가있는 테이블을 파티션하려고합니다. 그리고 총 잠금 수가 잠금 테이블 크기를 초과하면 예외가 발생합니다. 나는 구성을 온라인과 file.Here my.cnf의 변경 몇 가지 제안을 읽을 수 있습니다 :버퍼 풀 크기를 늘린 후에도 총 잠금 수가 잠금 테이블 크기를 초과합니다.

# PER CLIENT SETTINGS # 
# bit high but I got tons of ram here # 
sort_buffer_size    = 2M 
read_buffer_size    = 2M 
binlog_cache_size    = 1M 
wait_timeout     = 31536000 
interactive_timeout    = 300 
max_allowed_packet    = 12M 
thread_stack     = 128K 
table_cache      = 1024 
myisam_sort_buffer_size   = 1M 
tmp_table_size     = 12M 
max_heap_table_size    = 12M 


# LOGGING # 
log_queries_not_using_indexes = 1 
slow_query_log     = 1 
slow_query_log_file   = /var/lib/mysql/slowquery.log 

# MyISAM # 
key_buffer_size    = 32M 
myisam_recover     = FORCE,BACKUP 

# SAFETY # 
max_allowed_packet    = 16M 
max_connect_errors    = 1000000 


# BINARY LOGGING # 
log_bin      = /var/lib/mysql/mysql-bin 
expire_logs_days    = 14 
sync_binlog     = 1 

# CACHES AND LIMITS # 
tmp-table-size     = 32M 
max-heap-table-size   = 32M 
query-cache-type    = 0 
query-cache-size    = 0 
max-connections    = 500 
thread-cache-size    = 50 
open-files-limit    = 65535 
table-definition-cache   = 1024 
table-open-cache    = 2048 

# INNODB # 
innodb-flush-method   = O_DIRECT 
innodb-log-files-in-group  = 2 
innodb-log-file-size   = 512M 
innodb-flush-log-at-trx-commit = 1 
innodb-file-per-table   = 1 
innodb-buffer-pool-size  = 40G 

나는 다시 시작한 MySQL의 이러한 변경 한 후. 여전히 예외를 던집니다. 내 서버에는 12 코어와 48GB RAM이 있으며 당분간은이 분할 프로세스에이 서버를 사용할 수 있습니다. 이 예외 (총 잠금 수를 초과)를 우회 할 제안이 있습니까?

+1

이 질문을 dba.stackexchange.com으로 옮기기로 표결했습니다. –

답변