06.09.2014 Views

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

© FUOC • 71Z799014MO 57 <strong>Bases</strong> <strong>de</strong> <strong>datos</strong> en MySQL<br />

5.5.2. Equilibrio<br />

El índice i<strong>de</strong>al <strong>de</strong>bería tener las siguientes características:<br />

• Los registros <strong>de</strong>berían ser lo más pequeños posible.<br />

• Sólo se <strong>de</strong>be in<strong>de</strong>xar valores únicos.<br />

Analicemos cada recomendación:<br />

• Cuanto más pequeños sean los registros, más rápidamente se podrán cambiar<br />

<strong>de</strong> lugar (al insertar, modificar o borrar filas), a<strong>de</strong>más, en un momento<br />

dado, el índice pue<strong>de</strong> permanecer en memoria. Consi<strong>de</strong>remos las dos <strong>de</strong>finiciones<br />

posibles:<br />

create table Empresa(<br />

nombre char(30),<br />

teléfono char(20),<br />

in<strong>de</strong>x (nombre)<br />

);<br />

En esta tabla el índice se realiza sobre nombre, que es un campo <strong>de</strong> 30 caracteres, y se utiliza<br />

como clave para hacer los 'joins' con otras tablas.<br />

Ahora considérese la siguiente alternativa:<br />

create table Empresa(<br />

id int ,<br />

nombre char(30),<br />

teléfono char(20),<br />

in<strong>de</strong>x (id)<br />

);<br />

Se agrega una columna que servirá como i<strong>de</strong>ntificador <strong>de</strong> la empresa. Des<strong>de</strong> el punto <strong>de</strong> vista<br />

<strong>de</strong> rendimiento implica una mejora, ya que el índice se realiza sobre números enteros, por lo<br />

tanto, ocupará menos espacio y funcionará más rápido.<br />

Cuanto más pequeña sea la columna in<strong>de</strong>xada mayor velocidad se tendrá<br />

en el acceso a la tabla.<br />

• Consi<strong>de</strong>remos el índice siguiente, creado para disminuir la necesidad <strong>de</strong><br />

efectuar accesos a la tabla:<br />

create table Empresa(<br />

nombre char(30),<br />

crédito enum{’SI’,’NO’},<br />

in<strong>de</strong>x(crédito)<br />

);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!