iniqua

31may/103

Consultas a bases de datos 262 veces más rapidas

Publicado por Dani

government,politics news,politics news,politics

 

Un poco de teoría sobre búsquedas en BBDD.

Hoy os queremos contar algo que probablemente os deje a muchos con la sensación de que os estamos mintiendo. Puede que el título del post sea algo populista, pero realmente es cierto, así que: ¿Por qué no ponerle un nombre llamativo? J.

Antes de continuar, decir que para que le saquéis más jugo al post deberíais de saber SQL, aunque sea de forma muy básica. Los ejemplos mostrados y todo lo aquí expuesto está hecho con MySQL, pero estar característica no exclusiva de SGBD. Otros gestores (MS SQL Server) también disponen de ella. Para hacer nuestra base de datos de ejemplo y lanzar las consultas hemos usado, por comodidad, MySQL Workbench 5.2 OSS.

Cuando acabéis de leer el post conseguiréis que una búsqueda que antes tardaba en ejecutarse 12 segundos, se ejecute en 0.047 segundos!!!. Como dirían en la teletienda: increíble, pero cierto. Y para muestra un botón:

Conseguirás pasar de esto:

A esto:

El que más o el que menos ha hecho alguna vez (o al menos lo a usado) un típico buscador en una página web. Cuando escribes lo que quieres buscar, internamente se suele transformar en un consulta más o menos como sigue:

    SELECT campo1,campo2,…,campoN FROM Tabla1, Tabla2…, TablaN WHERE Campo1 LIKE 'VALOR DE ENTRADA';

Este es el ejemplo más sencillo de consulta que podemos encontrar, y menos eficiente, porque si escribes dos palabras irían dentro del mismo "LIKE". Por eso lo que se hace es separar cada valor de lo que escribamos y construir sentencias con múltiples condiciones:

    SELECT campo1,campo2,…,campoN FROM Tabla1, Tabla2…, TablaN WHERE Campo1 LIKE 'ENTRADA1' AND Campo1 LIKE 'ENTRADA2' … ;

   
Get Adobe Flash playerPlugin by wpburn.com wordpress themes