- Cuadernos 4D - http://www.faq-mac.com/4D -
Breve introducción a los índices en 4D v11 SQL
Publicado por: Angelo Caroprese el 8th Abril 2008 @ 16:54 en 4D, 4D v11 SQL | No hay comentarios
4D v11 SQL abre los horizontes a los desarrolladores con las nuevas formas de indexación introducidas.
Hay dos cambios grandes. Nuevos tipos de índices y nueva forma de almacenar los índices.
Ahora en 4D v11 SQL es posible indexar cuatro maneras:
Los índices se almacenan en archivos o ficheros aparte, hay dos archivos, un índice de estructura con extensión 4DIndy y un índice de datos con extensión 4DIndx. Lo cual facilita la vida si se necesita recrear los índices, ya que con sólo cerrar la base, borrar los archivos de índices y abrir nuevamente la base, estos se recrearán ipso facto.
Este tipo de índice es el clásico en 4D y el único disponible hasta 4D 2004. Es un índice optimizado para búsquedas y ordenaciones. Es la mejor elección de índice cuando se cuenta con una gran variedad de datos en un campo, por ejemplo, si en un campo hay en total 10 000 datos, de los cuales 8 100 de ellos son valores únicos, en teoría de base de datos la relación entre los valores únicos y la totalidad de los datos en un campo se conoce como selectividad de índice, en este caso es 0.81
Para crear un índice árbol-B (B-tree) se selecciona el campo en el editor de estructura y en las propiedades de indexación hay cuatro opciones:
La opción Ninguno, no indexa o da de baja un índice. Automático, permite a 4D escoger la mejor indexación basándose en el tipo de campo.
Este tipo de índice es nuevo en 4D v11 SQL y se introduce para indexar campos en los cuales la selectividad de índice es muy baja, por ejemplo en un campo booleano donde sólo hay dos opciones, verdadero o falso, para nuestro ejemplo la selectividad de índice para un campo booleano es 2 / 10 000 = 0.0002. No sólo para campos booleanos, sino también para campos donde un valor se repite con frecuencia, por ejemplo el ID de producto en una tabla de facturas. Es un índice optimizado para búsquedas.
Los índices compuestos se utilizan para almacenar el valor combinado de dos o más campos en un índice. Este tipo de índice es muy útil para parejas de llaves como nombre y apellido, ciudad y provincia, código postal y país. Puede hacerse a partir de campos indexados o no. Este tipo de índice optimiza las búsquedas y especialmente las ordenaciones de los datos. Algo importante a tener en cuenta es que 4D dará preferencia en la búsqueda a los índices compuestos, es decir, si se busca en una tabla usando tres campos y los dos primeros son un índice compuesto, 4D realizará la búsqueda primero por estos campos y luego por el tercer campo.
Estos índices se crean desde la lista de índices o desde el ícono [+] y luego se definen sus propiedades como lo muestra la imagen.
En 4D v11 SQL los campos de texto pueden pesar hasta 2 GB lo cual hace indispensable que los campos de texto se puedan indexar, lo cual optimizará las búsquedas dramáticamente. Un índice Árbol-B o Árbol-B agrupado puede ser a la vez índice de palabras claves.
Para definir si un campo es índice de palabras claves basta con marcar la opción en la lista de propiedades.
Dentro de las muchas novedades de 4D v11 SQL está la lista índices desde la cual se puede gestionar absolutamente todos los índices de la base de datos.
Desde la lista de índices se puede crear, modificar, reconstruir o borrar índices de todos los tipos.
Para crear un índice se hace clic en el ícono [+] y aparece un dialogo donde se definen las propiedades del índice. Tabla, nombre, tipo (Árbol-B, Árbol-B agrupado o palabras claves), campo o campos. Si se añade más de un campo automáticamente se definirá como índice compuesto.
Puede descargar una base de datos de ejemplos que ilustra acerca de los índices en 4D v11 SQL:
[1] http://www.4dhispano.com/Cuadernos_4D/4D_Indexes.zip (54 MB)
Atención, es una base de datos pesada dado que contiene muchos datos para demostrar el efecto de los índices en búsquedas y ordenaciones.
4D v11 SQL: The Missing Manual, Luc-Michel Six, 4D Press, 2007
4D v11 SQL Design Reference
ftp://ftp.4d.com/ACI_PRODUCT_REFERENCE_LIBRARY/4D_PRODUCT_DOCUMENTATION/PDF_Docs_by_4D_Product_A-Z/4D/4D_v11_SQL/4D_v11_Design_Ref.pdf
Artículo impreso desde: Cuadernos 4D: http://www.faq-mac.com/4D
Enlace al artículo: http://www.faq-mac.com/4D/2008/04/08/breve-introduccion-a-los-indices-en-4d-v11-sql/
URLs in this post:
[1] http://www.4dhispano.com/Cuadernos_4D/4D_Indexes.zip: http://www.4dhispano.com/Cuadernos_4D/4D_Indexes.zip
Click aquí para imprimir.