일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- azure sql
- RDS
- 오라클
- 주식
- 시스템 성능
- 파티셔닝
- 투자
- 인덱스
- 펀드
- 오렌지
- EC2
- SQL Server
- 데이터베이스
- 개인연금저축펀드
- Linux
- 애져
- 에러
- 성능
- DB
- 조인
- AWS
- AZURE
- 백업및복구
- DBeaver
- MySQL
- 리눅스
- oracle
- VPC
- 재테크
- mysql error
Archives
- Today
- Total
미스터 역마살
[Mysql 에러] THE TOTAL NUMBER OF LOCKS EXCEEDS THE LOCK TABLE SIZE 본문
Database/MYSQL
[Mysql 에러] THE TOTAL NUMBER OF LOCKS EXCEEDS THE LOCK TABLE SIZE
Mr. YeokMaSsal 2022. 7. 31. 12:44728x90
반응형
에러가 나는 이유
THE TOTAL NUMBER OF LOCKS EXCEEDS THE LOCK TABLE SIZE 에러 발생할때 이유는 아래와 같다.
MySQL은 저 문장이 들어오면 일단 select 결과를 모두 메모리로 가져온다. 그 메모리가 buffer 다.
이걸 조정하는 게 buffer_size 옵션이다. 그런데, 가지고 올 데이터량이 많아서 buffer_size를 넘어간다면? MySQL 은 Temp_Table이 완성되기 전에 You_Table 이 변경되면 안되니까, You_Table 에다가 lock을 걸어버린다. 즉, 그동안 다른 트랜잭션이 데이터를 변경할 수 없다는 소리다. 그래서 이런 에러가 생긴다.
해결방안
innodb_buffer_pool_size의 기본값이 8,388,608이라는데 이것은 byte 값이다.
innodb_buffer_pool_size=64MB 이런식으로 변경해 주면 된다고 한다.
innodb_buffer_pool_size=64M
728x90
'Database > MYSQL' 카테고리의 다른 글
[Mysql 에러] Truncated incorrect INTEGER value : 'AWS' (0) | 2022.07.31 |
---|---|
[Mysql 에러] This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable) (0) | 2022.07.31 |
캐릭터 셋 바꾸는 방법 (0) | 2022.07.31 |
SHOW PROCESSLIST (0) | 2022.07.30 |
Mysql Server parameter (0) | 2022.07.30 |
Comments