2012-06-21 2 views
2

저는 초보자 MySQL 사용자이기 때문에 여기서 약간의 조언을 사용할 수 있습니다. 저는 현재 각각 약 100,000 개의 레코드로 구성된 텍스트 파일을 처리하는 프로그램을 상속 받았습니다. 각 라인은 자체 레코드이고 처리됩니다. 이와 같은 파일은 약 1 분 안에 완료 될 수 있습니다.SQL 쿼리를 일괄 처리 할 수 ​​있습니까?

어쨌든 이제는 SQL 쿼리를 너무 느리게하지 않고 프로세스에 추가해야합니다. 본질적으로, 10 만 줄 각각은 이제 DB를 쿼리하고 더 많은 데이터에 액세스 할 수 있는지 확인하기 위해 SQL select 문을 만들어야 할 수도 있습니다. 나는 처음부터 힘들게 시작했고, 1 분에서 1 시간 정도 걸렸다. 확실히 받아 들일 수 없다. 제 질문은, 속도를 높이는 방법조차 있습니까? (나는 거기에 있다고 확신한다)

하나의 연결 개체 만 열고 있지만 각 레코드에 대해 개별 SQL 쿼리를 만드는 방법은 없다. 배치 선택 문을 사용할 수 있습니까? 어떤 충고라도 도움이 될 것입니다. 고마워요.

UPDATE

죄송합니다, 나는 더 명시되어 있어야합니다. 이것은 SQL select 문용입니다. 일괄 삽입 도구를 수행하는 방법을 알고 있습니다. 문제가 없습니다. 배치 선택 문이 가능하거나 속도를 높이는 방법을 이해할 수 없습니다.

또한 누군가가 색인을 언급했지만 색인에 대해서는 아무것도 모릅니다. 누군가 나에게 그들에 대한 정보를 제공 할 수 있습니까?

+0

구문 IN

http://www.w3schools.com/sql/sql_in.asp

SQL 당신은 SQL 삽입 또는 SQL을 선택하고 있는가? –

+0

SQL 쿼리를 모르는 상태에서 우리는별로 도움이되지 못합니다. 실행중인 쿼리의 샘플을 게시하면 능률적으로 지원할 수 있습니다. – saluce

답변

3

WHERE 절에 일반적으로 나타나는 열에 대해 index을 생성하여 SELECT을 가속화하십시오.

배치 삽입물을 transaction에 모두 래핑하여 속도를 높입니다.

+0

이유를 알고있는 색인을 작성하는 데주의하십시오. 하지만 명확한 대답 +1. – Sajmon

+0

이유를 모르겠습니다. 나는 색인에 대해 아무것도 모른다. 조심해야 할 것은 무엇입니까? – cardician

+0

인덱스가 상당히 커질 수 있으며 인덱스를 업데이트해야하므로 선택하는 테이블을 편집 할 때 속도가 느려질 수 있습니다. –

0

PRE INSERT TRIGGER 코드에 유용 할 수 있습니다. - 즉, 들어오는 행이있을 때 데이터베이스가 작업을 수행하게하십시오.

+0

나는 select 문에 대해 물어볼 것이고, insert 문은 묻지 않을 것이다. 그래서 나는 이것이 적용된다고 생각하지 않는다. – cardician

0

select 문을 수행하는 경우 키워드에 을 사용할 수 있습니다.

SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1,value2,...) 
관련 문제