> 허걱.........
> Mysql을 사용하던중 치명적인 문제점이 발견 되었습니다.
>
> 대량의 데이터를 table에 입력하는 도중에 해당 테이블의 데이터를
>
> 읽으려고 하면 쓰는 쪽과 읽는 쪽 모두 접속이 끊기는 현상이 생기는군요.
>
> 어떻게 해결해야 하죠?
>
> 입력부분
> ==============================
> C 로
> mysql_real_connect 를 이용해서 연결
> mysql_query 를 이용해서.
> INSERT INTO tbl_name VALUES ( "테스트", "데이타", "입력중", "1234" );
> 위 쿼리를 for 문을 이용해서 10000 회 정도 입력을 시킴.
>
> 동시에 콘솔에서 mysql DB_NAME 접속 후
> mysql > select * from tbl_name;
> 을 입력......
>
> 에러부분
> ==============================
> C프로그램 실행 부분.
> mysql_error 함수를 이용해서 에러를 보면
> Mysql server has gone away
> 라는 메세지 출력됨.
>
> 콘솔 연결 부분
> mysql> select code,name from master;
> ERROR 2013: Lost connection to MySQL server during query
>
제목 그대로입니다.
락을 걸어서 사용해보세요.
업데이트가 되는동안에는 write 락이 걸리는데 그러면 select문은 계속 기다리게되지요.
http://tunelinux.pe.kr/mysql/manual/10.txt
번역매뉴얼 10장 최대 성능내기에서
10.9 테이블에 락 거는 방법
10.11 INSERT 문에서 속도에 영향을 미치는 부분 <** insert 최적화 **>
이부분을 참고하면 될 듯합니다.
그런데 1만건이라면 그건 insert 문으로 꼭 넣어야하나요?
LOAD DATA INFILE 같은것 이용하면 좋을것같은데 자료가 일반 텍스트 형태로 되어있어야하니깐...
|