2012-05-30 11 views
7

Intentando acceder a la base de datos con tablas grandes (al menos 15 tablas en esta base de datos no menos de 1 millón, máximo - 20 millones). Una vez que selecciono la base de datos, phpMyAdmin carga al menos 5 minutos (y más).phpMyAdmin y tablas grandes

¿Cómo puedo acelerar la carga de la página con tablas?

+0

¿Está ordenando las tablas? ¿Tiene algún indicio o clave principal? ¿Qué motor de almacenamiento está utilizando? –

+0

Supongo que es un montón de declaraciones lentas. – Corbin

+0

Uso de InnoDB para todos. Estoy abierto página de inicio de la base de datos. 1er paso - iniciar sesión. 2º - elegir base de datos .... 3º minutos de espera y minutos ... – webbear

Respuesta

-3

phpMyAdmin es una herramienta de página web basada en navegador. ¿Por qué no pruebas otras herramientas para trabajar en bases de datos como sqlyog?

+0

Tengo tal limitación. Mi ISP rechaza el tráfico 3306. Así que solo está basado en la web – webbear

+0

phpMyAdmin se comportará lentamente con este tipo de carga pesada porque cuando usas su GUI para ver la estructura o explorar los datos o la tabla que lista, inicia las consultas en la consola de mysql según lo necesites. Otra forma es usar la consola directamente ... o puedes intentar conectar sqlyog con el puerto que está utilizando la consola mysql, si puede hacerlo con phpMyAdmin, también puede hacerlo mediante sqlyog o cualquier otra herramienta. – manurajhada

+0

Soy nosotros ing [dbForge] (http: // www.devart.com/dbforge/mysql/studio/) pero no hay posibilidades de que mi ISP lo utilice, ya que dichos productos se conectan a la base de datos directamente a través del puerto 3306. Así que estaba pensando si phpmyadmin tiene algunas opciones para acelerar la carga de información de tablas grandes. – webbear

1

Tal vez podamos cazar esto junto con otros interesados?

que marcó las columnas de la intormation_schema.tables que tardan en ser visitada:

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 

Además, el marco de navegación es el /navigation.php que exige

/libraries/common.lib.php => PMA_getTableList() que a su vez llama a

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

que contiene una de las consultas lentas.

que sustituyen las columnas lentos seleccionables en este:

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` 

a esto:

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` 

lo que hizo la consulta correr rápido. (Por lo general, no necesito el recuento de filas, por ejemplo ... Y también puedo obtenerlos manualmente. O tener 2 instalaciones de PhpMyAdmin.)

Nota: los valores reemplazados deberían aparecer como valores ficticios a partir de ahora en el administrador página - pero podría vivir con eso en lugar de la velocidad lenta.

Pero también debe haber otras consultas lentas, ya que todavía se carga lentamente.

Así que, solo quería compartir esto, alguien puede seguir con él. En este momento, no tengo más tiempo.

8

pegar estos líneas en la parte inferior de su archivo config.inc.php dentro de la instalación de phpMyAdmin:

//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 

Gracias a future500.nl!

Desearía haber encontrado esta solución horas antes, antes de borrar accidentalmente todos mis datos. :-(

+6

Si está monitoreando varios servidores con phpmyadmin, tenga en cuenta que esta es una variable global. Intenté $ cfg ['Servers'] [$ i] ['MaxExactCountViews'] = 0; y no pude hacerlo funcionar. Solo después me di cuenta de que no puedo establecer este valor por servidor. Espero que esto ayude a otros. – IvanD

+0

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

Cuestiones relacionadas