Las bases de datos (BD) cuanto ms extensas requieren una mayor atencin a la hora de organizar sus contenidos. Cuando se trabaja con tablas de miles o decenas de miles de registros la bsqueda de un determinado dato !uede resultar un !roceso largo que ralentiza enormemente la creacin de nuestra !gina. "s !or ello im!ortante tener en cuenta una serie de as!ectos indis!ensables !ara el mejor #uncionanmiento de la base. Gestin y eleccin de los ndices Los $ndices son cam!os elegidos arbitrariamente !or el constructor de la BD que !ermiten la bsqueda a !artir de dicho cam!o a una %elocidad notablemente su!erior. &in embargo' esta %entaja se %e contrarrestada !or el hecho de ocu!ar mucha ms memoria (el doble ms o menos) y de requerir !ara su insercin y actualizacin un tiem!o de !roceso su!erior. "%identemente' no podemos inde!" todos los c!mpos de una tabla extensa ya que doblamos el tama(o de la BD. )gualmente' tam!oco sir%e de mucho el indexar todos los cam!os en una tabla !eque(a ya que las selecciones !ueden e#ectuarse r!idamente de todos modos. *n caso en el que los $ndices !ueden resultar muy tiles es cuando realizamos !eticiones simultneas sobre %arias tablas. "n este caso' el !roceso de seleccin !uede acelerarse sensiblemente si inde!mos los c!mpos #$e si"%en de neo ent"e l!s dos t!&l!s. "n el ejem!lo de nuestra librer$a %irtual estos cam!os ser$an id+cliente e id+articulo. Los $ndices !ueden resultar contra!roducentes si los introducimos sobre cam!os tri%iales a !artir de los cuales no se realiza ningn ti!o de !eticin ya que' adems del !roblema de memoria ya mencionado' estamos relentizando otras tareas de la base de datos como son la edicin' insercin y borrado. "s !or ello que %ale la !ena !ensarselo dos %eces antes de indexar un cam!o que no sir%e de criterio !ara bsquedas de los internautas y que es usado con muy !oca #recuencia !or razones de mantenimiento. Gestin de los neos ent"e t!&l!s "l enlace entre tablas es uno de los !untos ms !eliagudos y que !uede lle%ar a la absoluta lentizacin de la base de datos a causa ,!eque(os, detalles que resultan ser #atales. )maginemos que trabajamos con una !eque(a BD constituida !or dos tablas de -... registros cada una. )maginemos ahora una seleccin simultnea en la que im!onemos la condicin de que el %alor un cam!o de la !rimera sea igual a de una segunda' algo que se realiza con mucha #recuencia. "n este ti!o de casos' la BD leer y com!arar cada %alor de cam!o de una con cada %alor de cam!o de la otra. "sto Ing. Nancy Casildo B. 1 17 de noviembre de 2008 [OPTIMIZANDO PRESTACIONES] re!resentar$a un milln de lecturas. "ste hecho !odr$a agra%arse si consultamos una tercera tabla al mismo tiem!o y !odr$a llegar a ser catastr#ico si tenemos en cuenta que la BD esta siendo consultada !or %arios internautas al mismo tiem!o. /ara e%itar situaciones de cola!so' es necesario inde!" c!d! $no de los c!mpos #$e si"%en de enl!ce ent"e es!s t!&l!s. "n el ejem!lo de nuestra librer$a %irtual' ya lo hemos dicho' estos cam!os ser$an id+cliente e id+articulo. 0dems' resulta tambi1n de %ital im!ortancia el de'ni" esos c!mpos de $n! (o"m! est"ict!mente id)ntic! en c!d! $n! de l!s t!&l!s' es decir' el cam!o ha de ser de la misma naturaleza y caracter$sticas. 2o %ale de#inirlo como real en una tabla y entero en otra o cambiar la longitud mxima !ara los al#anum1ricos o que en una tabla sea de longitud constante y en otra %ariable... "l gestionar inteligentemente estos as!ectos !uede solucionarnos muchos dolores de cabeza.
3a hemos comentado !or encima los di#erentes ti!os de cam!o existentes en una base de datos. La eleccin del ti!o de cam!o a!ro!iado !ara cada caso !uede ayudarnos tambi1n a o!timizar el tama(o y ra!idez de nuestra base de datos. La !reguntas que hay que hacerse a la hora de elegir la naturaleza y dimensiones del cam!o son4 *+,$) tipo de d!to %oy ! !lm!cen!" en el c!mpo- N.me"os/ teto/ (ec0!s111 *+C$2l es el t!m!3o m2imo #$e espe"o #$e p$ed! !lc!n4!" !l5$no de los "e5ist"os del c!mpo- 5ay que tener en cuenta que cuanto ms margen le demos al %alor mximo del cam!o' ms aumentar el tama(o de nuestra base de datos y ms tiem!o tardara en realizar las consultas. 0dems' el #actor tama(o !uede %erse agra%ado si estamos de#iniendo un cam!o indexado' !ara los cuales' el es!acio ocu!ado es a!roximadamente del doble. *n consejo !rctico es que las #echas sean almacenadas en #ormato de #echa ya que ello nos !ermite reducir el es!acio que ocu!an en memoria de ms del doble y !or otro lado' !odremos a!ro%echar las !restaciones que &6L y nuestro lenguaje de ser%idor nos o#recen. /odremos calcular la di#erencia de d$as entre dos #echas' ordenar los registros !or #echa' mostrar los registros com!rendidos en un inter%alo de tiem!o... "xiste la !osibilidad !ara los cam!os de texto de #ijar una cierta longitud !ara el cam!o o dejar que cada registro tenga una longitud %ariable en #uncin del nmero de carcteres que !osea. "legir cam!os de longitud %ariable nos !uede ayudar a o!timizar los recursos de memoria de la BD' no obstante' es un arma de doble #ilo ya que las consultas se realizan ms lentamente Ing. Nancy Casildo B. 2 17 de noviembre de 2008 [OPTIMIZANDO PRESTACIONES] !uesto que obligamos a la tabla a establecer cul es el tama(o de cada registro que se est com!arando en lugar de saberlo de antemano. "s !or tanto aconsejable' !ara los cam!os indexados de !eque(o tama(o' atribuirles una longitud #ija. Ing. Nancy Casildo B. 3