OT: Mantenimiento deu una Base Mysql

OT: Mantenimiento deu una Base Mysql

Postby TOTOVIOTTI » Tue Jun 16, 2015 8: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.edu.ar
User avatar
TOTOVIOTTI
 
Posts: 387
Joined: Fri Feb 05, 2010 11:30 am
Location: San Francisco - Córdoba - Argentina

Re: OT: Mantenimiento deu una Base Mysql

Postby joseluisysturiz » Wed Jun 17, 2015 3: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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: OT: Mantenimiento deu una Base Mysql

Postby russimicro » Wed Jun 17, 2015 1:16 pm

Code: Select all  Expand view


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





russimicro
 
Posts: 231
Joined: Sun Jan 31, 2010 3:30 pm
Location: Bucaramanga - Colombia

Re: OT: Mantenimiento deu una Base Mysql

Postby TOTOVIOTTI » 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.edu.ar
User avatar
TOTOVIOTTI
 
Posts: 387
Joined: Fri Feb 05, 2010 11:30 am
Location: San Francisco - Córdoba - Argentina

Re: OT: Mantenimiento deu una Base Mysql

Postby russimicro » 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 `" . $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 );
russimicro
 
Posts: 231
Joined: Sun Jan 31, 2010 3:30 pm
Location: Bucaramanga - Colombia

Re: OT: Mantenimiento deu una Base Mysql

Postby TOTOVIOTTI » Fri Jun 19, 2015 12:48 pm

Muy Bueno!
Muchas gracias!
Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.edu.ar
User avatar
TOTOVIOTTI
 
Posts: 387
Joined: Fri Feb 05, 2010 11:30 am
Location: San Francisco - Córdoba - Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 18 guests