도무지 왜그런지 모르겠네요..
UPDATE MT_GUESTBOOK SET READ_YN='Y' WHERE MY_EMAIL = 'XXX@naver.com' AND SEQ >= 510656;
이런 단순한 쿼리입니다.
MT_GUESTBOOK 테이블은 innod db 이구요 건수는 431272건 있습니다.
primary key는 seq구요 my_email은 index로 잡혀 있습니다.
사용자가 좀 많긴 한데요..그런다고 저 쿼리 하나 실행하는데 3~20초가 걸리는데요..그러면서 lock이 걸려요..
도무지 뭐가 문제인지..ㅜㅜ
등호문제 일까하고
UPDATE MT_GUESTBOOK SET READ_YN='Y' WHERE MY_EMAIL = 'XXX@naver.com';
이렇게 해봐도 lock이 걸리구요 처리 시간이 3초 이상 걸리네요..
select는 빠릅니다..업데이트가 문제인데..
혹시나 mysql설정도 올립니다.
[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
collation-server=utf8_general_ci
character-set-server=utf8
table_open_cache = 2048
max_connections=4096
max_connect_errors=2048
query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M
wait_timeout=10
max_allowed_packet=100M
slow-query-log = 1
slow_query_log_file = /home/mysql/var/slow-query.log
log-error = /home/mysql/var/error-logs
long_query_time=3
#skip-innodb
skip-name-resolve
lower_case_table_names=1
tmpdir = /home/tmp
## cafe24 edit
table_cache=2000
back_log = 1024
sync_binlog = 1
binlog_cache_size = 1M
max_heap_table_size = 1024M
ft_min_word_len = 4
thread_stack = 192K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 512M
back_log = 512
read_buffer_size = 2M
read_rnd_buffer_size = 8M
join_buffer_size = 8M
sort_buffer_size = 8M
thread_cache_size = 8
thread_concurrency = 64
# *** INNODB Specific options ***
innodb_file_per_table
innodb_log_file_size = 256M
innodb_additional_mem_pool_size = 24M
innodb_buffer_pool_size = 1800M
innodb_data_file_path=ibdata1:10M:autoextend:max:10000M
innodb_data_home_dir = /home/mysql/var
innodb_file_io_threads = 8
innodb_thread_concurrency = 36
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 5 --> 이부분은 30에서 혹시나 하고 줄여봤습니다.
#innodb_flush_method = O_DIRECT
#replication
log-bin = mysql-bin
server-id = 1
binlog-do-db = comalong
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
[mysql]
default-character-set=utf8
|