2012-05-15 2 views
2

나는 나의 mysql 상태에 대해 혼란을 가지고있다. mysql> '% key %'와 (과) 같은 상태를 보여줍니다;mysql 상태 key_reads, key_reads_request의 값이 0 인 이유는 무엇입니까?

+------------------------+-------+ 
| Variable_name   | Value | 
+------------------------+-------+ 
| Com_assign_to_keycache | 0  | 
| Com_preload_keys  | 0  | 
| Com_show_keys   | 0  | 
| Handler_read_key  | 2  | 
| Key_blocks_not_flushed | 0  | 
| Key_blocks_unused  | 13396 | 
| Key_blocks_used  | 0  | 
| Key_read_requests  | 0  | 
| Key_reads    | 0  | 
| Key_write_requests  | 0  | 
| Key_writes    | 0  | 

하지만,이 서버에 큰 (더 후 10 억 매일) 삽입, 업데이트 및 쿼리가 있지만, 상태의 값이 0.The 왜 서버는 거의 삼일 실행 된 (가동 시간 :. 이일 18 시간 54 분 19 초). 서버 상태를 플러시하지 않았습니다. 일부 db 설정 엔진 = innodb, key_buffer = 16M, innodb_buffer_pool_size = 2147483648. 어떤 정보 주셔서 감사합니다.

+0

3 일 동안 DB에 10 억 건의 작업이 있었음을 이해해야합니다 (where 절을 포함하지 않음). – DanRedux

+0

정말 죄송합니다. 말씀 드리고 싶습니다. 10 억을 넘지 않는 매일 10 억. 스레드 : 17 질문 : 429324377 느린 쿼리 : 453 개통 : 17281 테이블 플러시 : 1 열린 테이블 : 초당 64 개 쿼리 평균 : 1387.984. 나는 느린 쿼리를 보았습니다. 거의 느린 쿼리를 보았습니다. 테이블이 삽입되는 삽입 작업은 많은 인덱스에 있어야합니다. 많은 인덱스를 제거한 후 실행중인 것으로 보이며이 인덱스를 슬레이브 서버에 추가합니다. – luofei

답변

3

아마도 InnoDB 테이블을 사용하고 있습니까?

Key_XXX 서버 상태 값은 MyISAM 테이블 용입니다.

+0

당신의 복제를 보내 주셔서 감사합니다. 좋아, innod_ * 상태 값으로, 서버가 잘 운영되고있는 것 같습니다. – luofei

+0

나는 똑같은 말을하려고했다. 좋은 캐치 - –

1

당신이보고있는 값은 MyISAM 테이블을위한 것입니다. - 그러므로 캐시에 도움이 될 수있는 최근에 사용 된 키가 곧 다시 재사용 될 가능성이 기대와

http://dev.mysql.com/doc/refman/5.0/en/myisam-key-cache.html

이 캐시는 최근에 사용 된 보유 키 : 그들은의 MyISAM 키 캐시를 나타냅니다.

innodb를 사용하고 있으므로 키 캐시가 사용되지 않습니다.

조정을 위해 키 캐시 전용 메모리를 최소화해야합니다. innodb 처리에서 제거 된 메모리는 아마도 낭비 될 것입니다. -

+0

다시 고마워. 나는 innodb 및 myisam 엔진의 상태에 대해 조금 혼란스러워했다. 정말 이유는 하나의 테이블은 서버가 많은 느린 쿼리를 일으키는 너무 많은 쓸모없는 인덱스가 있습니다. – luofei

+0

좋아요. 내가 도울 수있어서 기쁩니다. 당신이 내가 그 질문에 잘 대답했다면, 당신이 내 대답을 받아 들여 주셔서 감사합니다. 감사와 행운을 빕니다! –

관련 문제