Hola que tal.
Bienvenidos a este nuevo capítulo del curso completo de base de datos y vamos a hablar de nuestro quinto
consejo.
El quinto consejo en realidad es use índices en cada campo significativo.
Vimos mucho sobre índices pero vamos a aclarar algunas cosas que quizás si no se aclaran luego ustedes
les va a traer confusión porque hay mucho material en internet y hay muchas cosas que tienen que ver
con estos dos índices que nosotros no estamos tomando en cuenta.
Me refiero a los índices de tipo full text y Spatial no vamos a hablar de Spatial porque no no no les
va a traer ningún tipo de beneficio pero vamos a hablar de fustes porque van a confundirse de Avid debido
a la com a lo que está circulando en Internet acerca de los beneficios de este tipo de índices.
Ya hay muchos expertos que los han descartado porque tienen sus limitaciones porque luego en tiempo
real no están funcionando todo lo óptimo que tienen que funcionar.
Vamos a hablar de una diferencia muy importante cuando ustedes tienen campos de texto por ejemplo razón
social y mail teléfono de domicilio y demás y ustedes tienen que hacer una búsqueda la búsqueda más
común es la de un nombre de cliente por ejemplo o un nombre de producto una descripción de producto
en un buscador de sus aplicaciones.
Hasta ahora nosotros venimos usando un tipo de instrucción todavía ustedes no no la han aprendido porque
no hemos visto lenguaje SQL pero se las voy a mostrar se las voy a mostrar en una consulta para que
ustedes vean lo fácil que es encontrar un texto dentro de nuestros campos.
Primero vamos a usar la instrucción Select luego la van a aprender bien con todas sus variantes y le
vamos a decir que me busque en mi tabla clientes cuando
cuando razón social sea parecido a
cualquier palabra que tenga en su interior la palabra el perfil la palabra Pabla vamos a ejecutarlo
esto yo luego se los voy a enseñar en la y cómo buscar y además no se preocupen quiero mostrarles otra
cosa ahora y fíjense me trajo una cantidad enorme de registros considerables.
No es que me trajo uno o dos me trajo una cantidad considerable de registros y me ha tardado nada cero
ni siquiera lo puedo expresar en milisegundos.
Ahora para reemplazar esto imagínense que hay en nuestra tabla clientes estubiera millones de registros
cosa que es poco probable salvo salvo desarrollos de multinacionales que están o de empresas de servicios
que tienen que tener tablas de clientes monstruosas porque estamos abasteciendo de electricidad por
ejemplo a toda una ciudad.
Luego los desarrollos comerciales los desarrollos de empresas es raro que tengan más de qué sé yo vamos
a tirar un número de 100 mil registros las consultas realmente lo he probado en desarrollos comerciales
que he hecho no solo en clientes sino en productos realmente demoran nada las consultas demoran son
muy rápidas y sobretodo en mi ciclo que es una base de datos rapidísima es muy rápida por eso yo estoy
dando un curso de ella porque es uno de los motores más versátiles de base de datos que hay ahora volvamos
a nuestra tabla a nuestro diseño.
Yo he puesto razón social como un índice de tipo full text
vamos a quitar el índice vamos a venir aquí vamos a borrar ese índice vamos a borrar cualquier índice
de ese campo vamos a guardar vamos a ejecutar nuevamente
y fíjense me demoro 15 milisegundos sigue siendo nada absolutamente nada lo resuelve en un pestañear.
Ustedes ni se dan cuenta ni siquiera estamos hablando de una décima de segundo.
Estamos hablando de milisegundos ahora como algún algún desarrollador habrá planteado que es un problema
que algunas tablas grandes demora o algunos segundos han creado el tipo de índice Foulkes.
Cómo funciona el índice Cortex tiene otra sintaxis.
Aquí tengo una consulta ya preparada fíjense que si Consul si comparamos la sintaxis las dos comienzan
con Select Asterisco from liantes asterisco es traeme todos los campos traeme todas las columnas de
la tabla cliente yo aquí podría poner solamente
reemplazar el asterisco por mi campo o bajo razón social.
Fíjense en esta área que solamente me va a traer razón social se utiliza luego vamos a ver en sentencias
SQL que es lo que se aconseja.
En realidad se desaconseja usar el asterisco y siempre mencionar los nombres de los campos pero no quiero
mezclar las clases quiero que veamos esto que no tiene que ver con el lenguaje se cuela y aquí me dice
que haga un Mazzeo del campo razón social que es el mismo que hemos usado aquí y se usa esta sintaxis
Mazz y razón social Agois el nombre de lo que queremos buscar.
Y si le agrega esto a veces cuando queremos que aparezcan los resultados.
Pero esto no está funcionando no funciona siempre.
A veces funciona.
Depende también el motor.
Aquí tienen que andar preocupándose si el motor que yo elegí es el adecuado.
No todos los motores aceptan full text.
Entonces para normalizar para normalizar esta clase que ustedes siempre obtengan los resultados vamos
a usar campos sin índice o campos con índices comunes.
No vamos a usar full text.
Esto lo aclare así a último momento por eso incluir esta clase vamos igual en esta clase a ver un par
de temas más porque no quiero que luego lleguen a Internet.
Pero Pablo no explicó que con full text voy a andar más rápido con mis textos.
Esto tiene otra limitación.
Si el resultado obtenido supera el 50 por ciento de los registros no me va a mostrar ningún resultado
por pantalla por cuestión de performance.
Toda la documentación que ustedes vean es full text.
Va a haber gente que lo va a defender y gente que con muchísimos argumentos lo va a tirar atrás.
Una de las cosas que han descubierto consultados es que cuando en una misma consulta se mezcla una consulta
ocultes con otros campos que son indexados de otro tipo la consulta termina tardando mucho más que una
consulta normal.
Entonces se han empezado a encontrar con problemas con este tipo de dato y por eso lo han desechado
muchos expertos.
Es por eso que yo quiero dejar esto en claro no quiero que ustedes se lleven un mal momento cuando encuentren
las maravillas del full text y luego digan a Pablo hilotas no lo he explicado o porque no lo sabe no
si lo conozco he intentado utilizarlo a mi desarrollo no me ha dado el resultado que yo esperaba y por
eso hasta miren lo que les digo prefiero no usar ni siquiera un índice o pueden usar como vimos full
text pero sin usar la sintaxis de TeX.
Simplemente con esta sintaxis le va a bajar algunos milisegundos.
Pero yo no no me jugaría a usarlo saben por qué.
Porque en el momento de insertar un registro cuando el índice es de tipo full text demora un poco más.
Entonces esta es una optimización es un consejo es una buena práctica.
Ustedes pueden tomarlo o pueden experimentar y pueden descubrir si les sirve o no les sirve.
Eso por un lado o por el otro lado.
Recuerden que no sólo tenemos que usar índices para lo que tiene que ver con nuestras Campos Identity
esas campos que nos unen tablas que nos nos unen.
Nuestro índice como puede ser en nuestra tabla de ventas hemos visto este campo que nos une la tabla
de cabecera con la tabla de clientes sino que como habíamos explicado aquí estamos usando un índice
en un campo que no está atado a ninguna tabla.
El consejo que yo les doy es que ustedes tienen que tunear como se dice esto.
No hace falta que los índices los crean en el momento que crean la tabla pueden tener un desarrollo
y ver que me están dando un poquito lento analizan las consultas se dan cuenta de que por hoy les resulta
habitual buscar por un campo determinado y cuando ven que ese campo no es de tipo índice hacen la prueba.
Aquí es todo prueba y ensayo saben por qué.
Porque hay mucha teoría pero ustedes pueden decir Bueno a ver yo estoy buscando constantemente por número
de factura.
Cuando el número de facturas supera tal número cuando el número de facturas que el número no es aconsejable
buscar por número de facturas sino por el campo identity.
Pero bueno ustedes marcarán su ritmo en los desarrollos y harán la prueba.
Mira tengo muchísimas aquí en las consultas ustedes van a tirar la sentencia se cuele y el mismo Jaider
se cuela y le va a decir cuantos milisegundos tarde es la mejor manera de probar es la mejor manera
de tunear y de hacer que sus tabla sean lo más óptimas posibles.
Si yo de acuerdo a mi a mi desarrollo veo que convirtiendo el número de factura en un índice voy a andar
mucho mejor y veo que la respuesta me viene mucho más rápido.
Lo hago y lo dejo así.
En esto no hay un libro que les diga que un número de factura no debe ser si se aconseja que cuando
los campos son de tipo Hobbit como les expliqué en la clase pasada traten de no usarlos como índice
porque a veces tarda más en cargar el índice que en lo que van a tardar ustedes en buscar datos en una
tabla maestra con campos de tipo así que bueno a lo largo de la sentencia la parte del curso de sentencias
SQL vamos a saber mucho más de todo esto y vamos a también venir a nuestros Jaydy SQL porque de hecho
todo lo vamos a hacer en nuestro en nuestra área de consultas.
Vamos a hacer todas nuestras instrucciones vamos a aprender todo el lenguaje SQL usando Jaydy SQL así
que no se preocupen.
Y por último recordarles que como ya estamos entrando en un área muy avanzada puede generar dudas quizás
algo que yo expliqué no quedó claro.
Recuerden que pueden dejarme su consulta iba a ser respondida de la manera más rápida y versátil posible.
Hagamos de esto un ida y vuelta.
Si quieren también sugerir temas o tienen algún problema profesional en sus trabajos en sus desarrollos
están trabados con algo también lo pueden comentar.
Inclusive he visto que no solo los instructores responden a veces los mismos alumnos cuando han pasado
por lo mismo.
Lo he visto en los cursos que he tomado de Java de nuevo DJs lo he visto bastante y bueno se crea una
comunidad así que armemos una comunidad y el tema es aprender y resolver nuestras dudas.
Así que los invito ahora sí a nuestra a nuestro quinto consejo a nuestro quinto consejo que es muy importante
el quinto el sexto consejo perdón que viene a ser la última clase de consejos y de optimizaciones avanzadas.
Y luego empezamos con el lenguaje de base de datos así que los veo en la próxima clase.