Páginas: [1]
Imprimir
Autor Tema: Optimizar MySQL y tablas  (Leído 684 veces)
masilicondrio
Newbie
*
Mensajes: 9



Ver Perfil WWW
« : Marzo 27, 2009, 11:47:47 »

Buenas, alguien tiene algun consejo sobre este tema?
Algun dipo de configuración en especial?

La base de datos que estoy diseñando va a pesar unos cuantos gb y estoy diseñando apuntando a velocidad...

El motor es innodb y estaría montado en 2 servers (Master/Slave), aunque sea al principio... quizas despues se integren un par de servers mas y la posibilidad de cambiar a mysql cluster ....

Saludos
En línea
Martin
Administrator
Newbie
*****
Mensajes: 47


Ver Perfil
« Respuesta #1 : Marzo 27, 2009, 03:10:18 »

Si no vas a usar transacciones, claves foráneas o bloqueos te conviene usar MyISAM,
es MUCHO mas rápido a la hora de recuperar datos.
En línea
masilicondrio
Newbie
*
Mensajes: 9



Ver Perfil WWW
« Respuesta #2 : Marzo 27, 2009, 03:42:34 »

Si no vas a usar transacciones, claves foráneas o bloqueos te conviene usar MyISAM,
es MUCHO mas rápido a la hora de recuperar datos.

Cuando decis "a la hora de recuperar datos" te referis a consultas SELECT o a reparacion de una tabla o indice?

Quiero usar Innodb porque necesito integridad referencial, son datos importantes como para dejar registros huerfanos, etc... así que claves foráneas seguro que voy a usar...

Para la tabla de logs uso MyISAM por ejemplo...

Saludos
En línea
Martin
Administrator
Newbie
*****
Mensajes: 47


Ver Perfil
« Respuesta #3 : Marzo 27, 2009, 04:27:02 »

Cuando decis "a la hora de recuperar datos" te referis a consultas SELECT o a reparacion de una tabla o indice?

Sip, consultas SELECT, con INSERT o UPDATE el rendimiento es similar.
Otra cosa que podes hacer es habilitar el caché de consultas, esto lo haces desde el achivo de configuración del mysql server.
Por lo general viene habilitado por defecto en los servidores de producción, pero por las dudas chekealo.

Código:
SHOW VARIABLES LIKE '%query_cache%'
En línea
Martin
Administrator
Newbie
*****
Mensajes: 47


Ver Perfil
« Respuesta #4 : Marzo 27, 2009, 04:54:50 »

Encontré un par de enlaces que te pueden interesar :

http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/

http://www.mysqlperformanceblog.com/
« Última modificación: Marzo 27, 2009, 04:58:54 por Martin » En línea
masilicondrio
Newbie
*
Mensajes: 9



Ver Perfil WWW
« Respuesta #5 : Marzo 27, 2009, 05:51:00 »

Gracias, conocía el sitio pero nunca habia visto esa página sobre innodb...

« Última modificación: Marzo 27, 2009, 07:24:34 por masilicondrio » En línea
masilicondrio
Newbie
*
Mensajes: 9



Ver Perfil WWW
« Respuesta #6 : Marzo 27, 2009, 11:49:23 »

Pongo las specs de los servers...

2 X
    Dell 1850 II
    2 Dual Core Intel® Xeon® 2.8GHz with 2M cache
    8G memory
    2 x 146GB disks U320 15K rpm drives.

2X
    PowerEdge 1950 III:
    2 Dual Core Intel® Xeon® E5205, 6MB Cache, 1.86GHz, 1066MHz FSB
    8GB 667MHz (4x2GB), Dual Ranked DIMMs 8G4D6D
    2 X 146GB 10,000 RPM Serial Attached SCSI 3GBps

Saludos
En línea
nicolas
Newbie
*
Mensajes: 14



Ver Perfil WWW
« Respuesta #7 : Marzo 28, 2009, 11:58:41 »

Con respecto a cachear las consultas, en otro hilo de este foro comentaba de una librería que yo uso habitualmente  para conectarme a las bases de datoss desde PHP. Se llama ezSQL_mysql. 
Concretamente lo que hace es simplificar toda la parte de la conexión. Es una clase que hace consultas, inserta, etc. y si lo necesitamos nos debuguea las consultas y sus resultados.

Esta librería tiene la capacidad de cachear consultas a la base de datos por medio de un directorio en el que guarda archivos de texto.

Por ejemplo:
En una página mostramos un contador de usuarios registrados, ej 300

De que sirve dentro de las 24hs, volver a hacer la misma consulta a la BD.

Es preferible para no saturar al servidor, almacenar en el archivo de texto el 300 y cuando se invoque a la misma consulta dentro de esas 24hs, se vuelve a tomar el valor del archivo de texto. Pasado el tiempo se actualiza el resultado y se vuelve a almacenar por otras 24, 48 o 1000 horas, lo que se necesite.

Yo en el pasado he tenido muchos problemas por saturación de los recursos del servidor, pero desde que uso esto me ha quitado un dolor de cabeza. Usando un poco el ingenio se puede aplicar a muchas consultas.

Si te sirve, busca en este foro por ezSQL ahí puse la url para descargarla.

saludos

En línea

Páginas: [1]
Imprimir
Ir a: