목록THE TOTAL NUMBER OF LOCKS EXCEEDS THE LOCK TABLE SIZE (1)
미스터 역마살

에러가 나는 이유 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이라는데 이것은..
Database/MYSQL
2022. 7. 31. 12:44