본문 바로가기

잡담....

계정 동시에 여러개 생성시 mysql 에러....

게임서버


 동시에 여러개의 클라이언트가   계정생성을 하면  mysql  error 가 발생되었다

로그를 뒤져서 보니  last_insert_id 가 0 이 발생이 되서  문제였는데

원인을 알수 없었어....


처음에  트렌잭션 문제인줄 알았는데   last_insert_id 가  atomic 하다고 하니

미쳐버리는 줄 알앗으


결국에 찾았는데   insert 할때   nickname, account 가  빈값으로 셋팅 후

last_insert_id 로 찾아서  update 하는데

이 때  동시에  insert 를 하면  nickname, account 에  unique 키가 걸려있어 에러가 발생한거 같음


결과론적으로  insert   후  update 를   할때  insert 에서 동시에 같은 쿼리가 insert 되서 에러 발생


해결책 :  테이블을 따로 만들어  id 생성 후   한번에 insert 를 하자


이걸로   오후시간을  다  잡아먹엇네..  좀 쪽팔리다  ㅋㅋ