ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Afinamiento Y Rendimiento De Bases De Datos


Enviado por   •  11 de Febrero de 2014  •  1.883 Palabras (8 Páginas)  •  451 Visitas

Página 1 de 8

Cenfotec

Especialidades en Tecnología de Bases de Datos

MBD 302 Afinamiento y Rendimiento de Bases de Datos

Profesor: MBA Rodolfo Zamora

Trabajo Extraclase: Recomendaciones de afinamiento en scripts

Objetivo:

Elaborar un informe de al menos 20 sugerencias sobre que hacer y que no hacer con respecto al uso de scripts en la tecnología que les tocó exponer el proyecto en el siguiente formato:

En vez de hacer esto… Haga esto otro… Justificación

Select * … Select campo 1… Esto hace que sea más eficiente por…

Forma de evaluación:

Valor 5%

Fecha Entrega Agosto 1ero.

Alumnos:

Joy Muñoz

Franklin Cordoba

Mauricio Rodriguez 

1- Para insertar una gran cantidad de datos se debe realizar de la siguiente manera:

mysql> INSERT INTO gente VALUES

-> ('Tulano','2000-12-02'),

-> ('Pegano','1993-02-10');

No de esta:

INSERT INTO gente VALUES ('Tulano','2000-12-02');

INSERT INTO gente VALUES ('Pegano','1993-02-10');

Ya que mysql creara y revisara cada índice por cada insert separa por eso se deben insertar todos los datos para que al final se generen los índices.

2- Para insertar datos de forma más veloz se debe excluir:

mysql> INSERT INTO ciudad5 (poblacion,nombre) VALUES

-> (7000000, 'Madrid'),

-> (9000000, 'París'),

-> (3500000, 'Berlín');

Siempre que se pueda se debe quitar la parte después del nombre de la tabla ya que mysql revisara estos capos por cada insert aunque no sea necesario.

Forma correcta:

mysql> INSERT INTO ciudad5 VALUES

-> (7000000, 'Madrid'),

-> (9000000, 'París'),

-> (3500000, 'Berlín');

3- Evitar el uso de los select * from.... ya que el rendimiento de las consultas se verá afectado por la gran cantidad de datos recuperados por esto se recomienda solo consultar los datos necesarios.

SELECT * FROM ciudad3;

Debe ser así:

SELECT nombre, codigo FROM ciudad3;

4-Realizar las consultas de acuerdo (si se tienen) al orden de los índices para agilizarla.

(Hay un índice en el campo codigo)

SELECT nombre, poblacion, descrpcion, escudo,codigo, FROM ciudad3;

Forma correcta

SELECT codigo,nombre, poblacion, descripcion, escudo FROM ciudad3;

5- Utilizar la función limit para limitar el resulset cuando sea posible, así se evita un exceso de consumo de ancho de banda y duración de la consulta.

SELECT * FROM usuarios WHERE edad BETWEEN 18 AND 25 ORDER BY id DESC LIMIT 0,50

6- Utilizar cuando sea posible solo columnas índices dentro del where, esto hará más rápido los querys.

SELECT codigo,nombre, poblacion, descripcion, escudo FROM ciudad3 where codigo='lis', and poblacion='9999';

7- Utilizar la combinación apropiada de caracteres en cada tabla según lo recomienda mysql, ejemplo al utilizar SET NAMES 'utf8';. Se ha demostrado un deterioro de las consultas (tiempo en realizarlas) por eso si no se va a utilizar tildes, ñ, u otro carácter para UTF-8 por default además esto se puede aplicar por tabla o toda la base de datos y columnas.

http://dev.mysql.com/doc/refman/5.0/es/charset-mysql.html

SET NAMES 'utf8';

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name

[create_specification [, create_specification] ...]

create_specification:

[DEFAULT] CHARACTER SET charset_name

| [DEFAULT] COLLATE collation_name

8- Para la el uso de punteros en MySQL estos se deben cerrar, ya que el motor si no cierran los deja en memoria por un largo tiempo con lo que en un futuro podría provocar problemas de rendimiento.

CREATE PROCEDURE curdemo()

BEGIN

DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;

DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;

OPEN cur1;

OPEN cur2;

REPEAT

FETCH cur1 INTO a, b;

FETCH cur2 INTO c;

.............CODIGO............

UNTIL done END REPEAT;

CLOSE cur1;

CLOSE cur2;

END

9- Utilizar el Engine adecuado para lo que se necesita, ya sea InomDB ,MyISAM etc ya que esto afectara de forma significativa el desempeño de nuestras Base de Datos.

ALTER TABLE [NOMBRE_BBDD].[NOMBRE_TABLA] engine=MyISAM; poner el engine

...

Descargar como (para miembros actualizados)  txt (12.2 Kb)  
Leer 7 páginas más »
Disponible sólo en Clubensayos.com