2012-04-24 4 views
0

요청 헤더에서 일부 매개 변수를 취하고 로컬 호스트에서 호스팅되는 db에 단일 INSERT 쿼리를 보내는 아주 작은 스크립트가 있습니다.MySQL 구성 권장 사항

DB에는 하나의 테이블이 있으며 어떤 종류의보고도 실행하지 않으므로 기본적으로이 서버에 대한 쿼리의 100 %는 INSERT 개의 쿼리입니다.

스크립트가 많이 액세스되고 있으므로 이러한 쿼리가 동시에 실행됩니다.

저는 특정 요구 사항을 지원하기 위해 구성 파일을 조정할 방법을 찾고 있습니다. 높은 보인다

편집

나는 현재 phpMyAdmin-에 이러한 변수를보고 있어요> 상태 : 내가 많이 얻을거야 때문에

Slow_queries 22 
Handler_read_rnd 1,496 k 
Handler_read_rnd_next 111M 
Created_tmp_disk_tables 495 
Sort_merge_passes 77 
Opened_tables 332 
Table_locks_waited 154 

내가 부탁 해요 이유는 더 많은 동시 연결이 곧있을 것이므로 서버가 처리 할 수 ​​있도록하기 전에 조정을하고 싶습니다.

+0

성능 문제가 있습니까? (로드가 너무 높음?) –

+0

테이블이 ** 절대 ** 읽혀지면 그 점이 무엇입니까? – eggyal

+0

@eggyal 데이터를 저장하고 있으며 매 2 주마다 데이터를 완전히 내보내고 다른 시스템에로드합니다. 다른 시스템에서는 데이터에 대한 다른 쿼리를 수행합니다. – user838437

답변

0

당신이 말했던 것부터 내가 가진 유일한 추천은 현재 다른 엔진을 사용하고 있다면 InnoDB 엔진을 사용하도록 테이블을 변환하는 것입니다. 그 이유는 InnoDB에서 INSERT이 매우 빠르다는 것입니다 (행은 기본 키의 순서로 저장되므로 기본적으로 테이블의 끝에 추가됩니다).

+0

OK. 현재 MyISAM을 사용하고 있습니다. InnoDB로 변경 한 후 얼마만큼의 차이를 기대해야합니까? – user838437

+0

@Sobolan이 맞다. MyISAM과 InnoDB는 내부적으로 매우 다릅니다. 그래서 InnoDB에서 이메일 주소를 기본 키로 사용한다면 끝에 추가 할 것입니까? 기회가 아닙니다. InnoDB는 btree에 정보를 저장합니다. 따라서 전자 메일 주소는 기본 키의 순서대로 저장됩니다. MyIsam 작품은 다르게 http://stackoverflow.com/questions/2362667/how-b-tree-indexing-works-in-mysql을 참조하십시오. – Namphibian

+0

http://rorguide.blogspot.com/2011/06/difference-between -innodb-and-myisam.html InnoDB는 ACID complaint 테이블에 적합하지만, MyISAM은 아마 더 의미가있다. 본질적으로 MyISAM 테이블 레코드는 항상 끝에 추가됩니다. MyISAM은 기본 키가 힙 상단의 인덱스 인 힙입니다. 이렇게하면 로깅 데이터를 빠르게 처리 할 수 ​​있습니다. 그러나이 둘은 매우 다릅니다. InnoDB에서 데이터는 기본 키의 순서로 저장됩니다. MyISAM에서는 끝에 MyISAM 파일의 레코드 위치를 가리키는 인덱스가 끝에 붙습니다. – Namphibian