2012-05-30 3 views
7

큰 테이블을 가진 데이터베이스에 액세스하려고합니다 (이 데이터베이스에서 적어도 15 개 테이블 이상이 1 백만 개, 최대 2,000 만 개). 데이터베이스를 선택하면 phpMyAdmin이 적어도 5 분 이상로드됩니다.phpMyAdmin 및 큰 테이블

테이블을 사용하여 페이지를 빠르게로드하려면 어떻게해야합니까?

+0

표를 정렬 하시겠습니까? 표시기 또는 기본 키가 있습니까? 사용중인 스토리지 엔진 –

+0

내 계산은 느린 계산서입니다. – Corbin

+0

모두를 위해 InnoDB 사용. 방금 열었습니다. 첫 번째 단계 - 로그인 두 번째 - 데이터베이스 선택 .... 세 번째 분 분 및 분 ... – webbear

답변

-3

phpMyAdmin은 브라우저 기반 웹 페이지 도구입니다. sqlyog과 같은 데이터베이스에서 작업 할 수있는 다른 도구를 사용해보십시오.

+0

내 ISP가 3306 트래픽을 거부하므로 웹 기반입니다. – webbear

+0

phpMyAdmin이 느리게 동작합니다. 이런 종류의 무거운로드 때문에 GUI 나 구조체를 보거나 데이터 나 테이블을 열람 할 때 당신이 필요로하는대로 mysql 콘솔에 질의를하면된다. 다른 방법은 콘솔을 직접 사용하는 것이다. 또는 sqlyog 당신이 mysql 콘솔을 사용하고있는 포트를 가지고 있고, phpMyAdmin으로 할 수 있다면 sqlyog 나 다른 툴로도 할 수있다. – manurajhada

+0

나는 우리이다. ing [dbForge] (http : // www.devart.com/dbforge/mysql/studio/)하지만 ISP가 사용하는 기회는 없습니다. 그런 제품이 3306 포트를 통해 직접 데이터베이스에 연결되기 때문입니다. 그래서 phpmyadmin에 큰 테이블 정보의 로딩 속도를 높이는 몇 가지 옵션이 있다면 나는 어쩔 줄을 몰랐다. – webbear

1

어쩌면 우리는 다른 사람들과 함께 이걸 사냥 할 수 있을까요?

SELECT 

`TABLE_CATALOG` 
,`TABLE_SCHEMA` 
,`TABLE_NAME` 
,`TABLE_TYPE` 
,`ENGINE` 
,`VERSION` 
,`ROW_FORMAT`  ------SLOW 
,`TABLE_ROWS`  ------SLOW 
,`AVG_ROW_LENGTH` ------SLOW 
,`DATA_LENGTH`  ------SLOW 
,`MAX_DATA_LENGTH` ------SLOW 
,`INDEX_LENGTH` ------SLOW 
,`DATA_FREE`  ------SLOW 
,`AUTO_INCREMENT` ------SLOW 
,`CREATE_TIME`  ------SLOW 
,`UPDATE_TIME`  ------SLOW 
,`CHECK_TIME`  ------SLOW 
,`TABLE_COLLATION` 
,`CHECKSUM`  ------SLOW 
,`CREATE_OPTIONS` 
,`TABLE_COMMENT` 

FROM `tables` WHERE 1 

는 또한, 탐색 프레임은 다음

/libraries/database_interface.lib.php => PMA_DBI_get_tables_full()

를 호출

/libraries/common.lib.php => PMA_getTableList() 호출 /navigation.php입니다 :

나는 액세스 할 수 느린있는 intormation_schema.tables의 열을 표시

에는 느린 쿼리 중 하나가 포함되어 있습니다. 이에

SELECT *, 
`TABLE_SCHEMA`  AS `Db`, 
`TABLE_NAME`   AS `Name`, 
`TABLE_TYPE`   ÀS `TABLE_TYPE`, 
`ENGINE`    AS `Engine`, 
`ENGINE`    AS `Type`, 
`VERSION`   AS `Version`, 
`ROW_FORMAT`   AS `Row_format`, 
`TABLE_ROWS`   AS `Rows`, 
`AVG_ROW_LENGTH`  AS `Avg_row_length`, 
`DATA_LENGTH`  AS `Data_length`, 
`MAX_DATA_LENGTH` AS `Max_data_length`, 
`INDEX_LENGTH`  AS `Index_length`, 
`DATA_FREE`   AS `Data_free`, 
`AUTO_INCREMENT`  AS `Auto_increment`, 
`CREATE_TIME`  AS `Create_time`, 
`UPDATE_TIME`  AS `Update_time`, 
`CHECK_TIME`   AS `Check_time`, 
`TABLE_COLLATION` AS `Collation`, 
`CHECKSUM`   AS `Checksum`, 
`CREATE_OPTIONS`  AS `Create_options`, 
`TABLE_COMMENT`  AS `Comment` 

:

SELECT 
`TABLE_SCHEMA`  AS `Db`, 
`TABLE_NAME`   AS `Name`, 
`TABLE_TYPE`   AS `TABLE_TYPE`, 
`ENGINE`    AS `Engine`, 
`ENGINE`    AS `Type`, 
`VERSION`    AS `Version`, 
'Compact'    AS `Row_format`, 
0      AS `Rows`, 
0      AS `Avg_row_length`, 
0      AS `Data_length`, 
0      AS `Max_data_length`, 
0      AS `Index_length`, 
0      AS `Data_free`, 
0      AS `Auto_increment`, 
'2000-01-01 00:00:00' AS `Create_time`, 
NULL     AS `Update_time`, 
NULL     AS `Check_time`, 
`TABLE_COLLATION`  AS `Collation`, 
NULL     AS `Checksum`, 
`CREATE_OPTIONS`  AS `Create_options`, 
`TABLE_COMMENT`  AS `Comment` 

쿼리가 빠르게 실행 만든

나는이의 느린 SELECT 컬럼을 교체했다. (보통 행 수는 필요하지 않습니다. 수동으로 가져올 수도 있고 PhpMyAdmin을 2 개 설치 할 수도 있습니다.)

참고 : 재정의 된 값은 지금부터 관리자의 더미 값으로 표시되어야합니다 페이지 -하지만 느린 속도보다는 오히려 그걸로 살 수 있습니다.

그러나 천천히로드되는 다른 느린 쿼리가 있어야합니다.

그래서 이걸 공유하고 싶다면 다른 사람도 함께 할 수 있습니다. 지금, 나는 더 이상 시간이 없다.

8

은 phpMyAdmin을 설치 내에서 config.inc.php를 파일의 맨 아래에 다음 줄을 붙여 넣습니다

//http://future500.nl/phpmyadmin-slow-on-startup/: 
$cfg['MaxExactCountViews'] = 0;//disable trying to count the number of rows in any view 
$cfg['MaxExactCount'] = 0;//disable correcting the InnoDB estimates 

당신이 future500.nl 주셔서 감사합니다!

실수로 모든 데이터를 삭제하기 전에이 수정 시간을 더 빨리 찾았 으면 좋겠습니다. :-(

+6

phpmyadmin으로 여러 서버를 모니터링하는 경우이 매개 변수가 전역 변수임을 유의하십시오. $ cfg [ 'Servers'] [$ i] [ 'MaxExactCountViews'] = 0; 작동시키지 못했습니다. 나중에 나는 서버 당이 값을 설정할 수 없다는 사실에 단서를 썼다. 희망이 다른 사람들을 돕는다. – IvanD

+0

http://www.future500.nl/articles/2012/07/phpmyadmin-slow-on-startup/ – mathheadinclouds