FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour OT: Mantenimiento deu una Base Mysql
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
OT: Mantenimiento deu una Base Mysql
Posted: Tue Jun 16, 2015 08:12 PM

Hola amigos,
disculpen por el OT, pero no encuentro información y como en éste foro siempre hay alguien
dispuesto a compartir experiencias, por eso los molesto.
Tengo una BD de MySql en internet, donde trabajo con un sistema que tiene más de 150 tablas
y muchas transacciones y concurrencias, donde se puede añadir, modificar y borrar datos desde
diferentes usuarios y tablas, con algunas tablas de más de 2.000.000 filas.

La consulta es: es necesario realizar algún tipo de mantenimiento a las mismas? He leído
del OPTIMIZE TABLE, pero cuando lo ejecuto no noto que haga nada interesante...
O algún otro tipo de mantenimiento preventivo o de optimización que ustedes realicen
para mejorar el desempeño de las mismas.

Desde ya, muchas gracias!
Roberto

PD: Hace más de dos años que está funcionando así sin problemas, pero la idea es mejorar
en cuanto se pueda, el desempeño del sistema.

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: OT: Mantenimiento deu una Base Mysql
Posted: Wed Jun 17, 2015 03:56 AM

Lo que te recomendaria, es que para que la apertura de las tablas sea mas rapida, crees tablas copias de las mas grandes como DATA HISTORICA y asi pueda para principalmente realizar respaldo de datos, sea mas ligera las tablas, es solo algo que aprendi cuando usaba DBF en DOS, saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: OT: Mantenimiento deu una Base Mysql
Posted: Wed Jun 17, 2015 01:16 PM
Code (fw): Select all Collapse
Este escript lo ejecuto todos los dias en un horario muerto (1 am) con una tarea programada y
para tablas grandes las uso en formato InnoDB

<?php
echo '<pre>' . "\n\n";
set_time_limit( 100 );

$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;

//Connection variables :
$h = 'localhost';
$u = 'root';
$p = 'password';

$dummy_db = 'mysql';

/*The php->mysql API needs to connect to a database even when executing scripts like this.
If you got an error from this(permissions),
just replace this with the name of your database*/

$db_link = mysql_connect($h,$u,$p);

$res = mysql_db_query($dummy_db, 'SHOW DATABASES', $db_link) or die('Could not connect: ' . mysql_error());
echo 'Found '. mysql_num_rows( $res ) . ' databases' . "\n";
$dbs = array();
while ( $rec = mysql_fetch_array($res) )
{
$dbs [] = $rec [0];
}

foreach ( $dbs as $db_name )
{
echo "Database : $db_name \n\n";
$res = mysql_db_query($dummy_db, "SHOW TABLE STATUS FROM `" . $db_name . "`", $db_link) or die('Query : ' . mysql_error());
$to_optimize = array();
while ( $rec = mysql_fetch_array($res) )
{
$to_optimize [] = $rec['Name'];
}
if ( count ( $to_optimize ) > 0 )
{
foreach ( $to_optimize as $tbl )
{
mysql_db_query($db_name, "REPAIR   TABLE `" . $tbl ."`", $db_link );
mysql_db_query($db_name, "ANALYZE  TABLE `" . $tbl ."`", $db_link );
mysql_db_query($db_name, "CHECK    TABLE `" . $tbl ."`", $db_link );
mysql_db_query($db_name, "OPTIMIZE TABLE `" . $tbl ."`", $db_link );
}
}
}

$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 6);
echo 'Parsed in ' . $total_time . ' secs' . "\n\n";
?>

/****************************************************


Johnson Russi
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: OT: Mantenimiento deu una Base Mysql
Posted: Fri Jun 19, 2015 11:36 AM

Hola, como para que es este script?
Disculpá la consulta....
Roberto

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: OT: Mantenimiento deu una Base Mysql
Posted: Fri Jun 19, 2015 12:27 PM

// MANTENIMIENTO BASICO DE UNA BASE DE DATOS - MYSQL

http://www.animacionyweb.com.ar/2012/04 ... -de-mysql/

mysql_db_query($db_name, "REPAIR TABLE &quot; . $tbl .&quot;", $db_link );
mysql_db_query($db_name, "ANALYZE TABLE &quot; . $tbl .&quot;", $db_link );
mysql_db_query($db_name, "CHECK TABLE &quot; . $tbl .&quot;", $db_link );
mysql_db_query($db_name, "OPTIMIZE TABLE &quot; . $tbl .&quot;", $db_link );

Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: OT: Mantenimiento deu una Base Mysql
Posted: Fri Jun 19, 2015 12:48 PM

Muy Bueno!
Muchas gracias!

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar

Continue the discussion