2012-05-30 17 views
7

Provare ad accedere al database con tabelle grandi (almeno 15 tabelle in questo database non meno di 1 milione, massimo - 20 milioni). Una volta selezionato il database - phpMyAdmin caricando almeno 5 minuti (e più).phpMyAdmin e grandi tabelle

Come posso velocizzare il caricamento della pagina con le tabelle?

+0

Stai ordinando i tavoli? Hai qualche indizio o chiave primaria? Quale motore di archiviazione stai usando? –

+0

La mia ipotesi è una tonnellata di dichiarazioni di conto lento – Corbin

+0

Uso di InnoDB per tutti. Home Banca dati page primo passo -. login 2 ° -. scegliere di database .... 3 ° minuti di attesa e minuti ... – webbear

risposta

-3

phpMyAdmin è uno strumento per pagine Web basato su browser. Perché non provare altri strumenti per lavorare su database come sqlyog.

+0

ho tale limitazione mio ISP rifiutando 3306 traffico in modo unico modo -.. è web based – webbear

+0

phpMyAdmin si comporterà lento. con questo tipo di carico pesante perché quando usi la sua GUI per vedere la struttura o sfogliare i dati o la tabella che elenca le query sulla console mysql secondo le tue necessità .. Altrimenti usa la console direttamente .. o puoi provare a connettere sqlyog con la porta stai usando la console mysql, se puoi farlo con phpMyAdmin puoi farlo anche con sqlyog o con qualsiasi altro strumento. – manurajhada

+0

Sono io ing [dbForge] (http: // www.devart.com/dbforge/mysql/studio/) ma non ci sono possibilità che il mio ISP lo usi, perché tali prodotti si collegano al database direttamente tramite la porta 3306. Quindi stavo vagando se phpmyadmin avesse alcune opzioni per accelerare il caricamento di informazioni su grandi tabelle. – webbear

1

Forse possiamo cacciare questo giù insieme ad altri interessati?

segnai le colonne della intormation_schema.tables che sono lento per essere letta:

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 

Inoltre, il frame di navigazione è il /navigation.php che chiama

/libraries/common.lib.php => PMA_getTableList() che poi chiama

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

che contiene una delle query lente.

ho sostituito le colonne lenti selezionare in questo:

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` 

Per questo:

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` 

che ha reso la query correre veloce. (Di solito non ho bisogno del conteggio delle righe per esempio .. E posso anche ottenerli manualmente. O avere 2 installazioni PhpMyAdmin.)

Nota: i valori sostituiti devono apparire come valori fittizi da ora in poi sull'admin. pagina - ma potrei vivere con quello piuttosto che con la bassa velocità.

Ma ci devono essere altre query lente e, in quanto carica ancora lentamente.

Quindi, solo voluto condividere questo, qualcuno potrebbe andare avanti con lui. In questo momento, non ho più tempo.

8

Incollare queste righe nella parte inferiore del file config.inc.php all'interno della vostra installazione 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 

Grazie a future500.nl!

Vorrei aver trovato questo fix ore prima, prima che sbaglio ho cancellato tutti i miei dati. :-(

+6

Se stai monitorando più server con phpmyadmin, nota che questa è una variabile globale. Ho provato $ cfg ['Server'] [$ i] ['MaxExactCountViews'] = 0; e non riuscivo a farlo funzionare. Solo più tardi ho capito che non posso impostare questo valore per server. Spero che questo aiuti gli altri. – IvanD

+0

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

Problemi correlati