우리는 데비안에서 MySQL 5.0.51을 사용하고 있습니다. 나는 큰 데이터베이스를 가지고있다 (하나의 테이블에 8 천만 행 이상, 또 다른 테이블에 30 억 이상, 또 다른 등등에 2 천만 개, 정수 기본 키가있는 각각의 테이블이 있고 대부분의 테이블도 상당히 넓다). 서버가 작동 중이다. 꽤 열심히.매우 큰 테이블을 가진 MySQL에서 'SHOW INDEX'가 느리거나 문제가 있습니까?
우리가 사용하고있는 프레임 워크 (Ruby on Rails)는 실제 문제를 야기하는 made a minor tweak을 가지고 있으며, 이것이 우리에게 영향을주는 것인지 또는 그것이 수행하는 쿼리 유형에 본질적인 것이 있는지 여부를 알아 내려고하고 있습니다. .
새로운 Rails 프로세스를 시작할 때 프레임 워크는 InnoDB 인 각 테이블에 대해 "SHOW INDEX FROM foo
WHERE Key_name = 'PRIMARY'"를 실행합니다. 우리 서버에서, 더 큰 테이블의 경우 5 초에서 15 초 사이 인로드/다른 쿼리에 따라 다릅니다. 그것은 많은 시간을 추가합니다.
예상되는 동작입니까? 아니면 특정 상황에서만 발생하며 솔루션이 있습니다 (동일한 정보를 얻으려면 "SHOW CREATE TABLE foo"를 사용하는 것일 수 있습니다).
당신은 INFORMATION_SCHEMA.STATISTICS SELECT * FROM'실행하려고 할 수있는 TABLE_SCHEMA = 'your_db_name'AND TABLE_NAME = 'your_table_name''? –