Complejidad de consultas SQL

El lenguaje de consulta estructurado (SQL) es el lenguaje que se utiliza para consultar bases de datos relacionales. Una base de datos relacional típica consta de tablas, donde cada tabla tiene filas y columnas. Cada columna tiene datos de un tipo particular. Factor dependiente de la complejidad de la consulta SQL.

Ejemplo –

select * 
from employee 
where id = 77

Hay tres formas diferentes en que la consulta podría encontrar el resultado:

  1. O (1) : índice hash en id o resultado almacenado en caché en id = 77 de la consulta anterior.
  2. O (n) : realice un escaneo completo y mire todas y cada una de las filas y no pudo encontrar ningún resultado.
  3. O(log(n)) – Ordena la identificación y realiza una búsqueda binaria.

La complejidad de la consulta depende totalmente de cómo el motor SQL procesará la consulta. Si nuestra tabla de empleados tiene 100000000000 filas de datos y necesitamos encontrar la fila donde la identificación del empleado es 77. Si escaneamos toda la tabla, tomaría mucho tiempo. Si ordenamos la tabla y hacemos una búsqueda binaria en esta tabla, entonces necesitamos alrededor de 36 búsquedas (la base logarítmica 2 de 100000000000 es ~36) para encontrar nuestro valor. Pero ordenar la mesa llevaría un tiempo. Depende totalmente del optimizador del motor sql.

Recomendaría esto si desea obtener más información sobre el procesamiento de consultas del motor SQL .

Cosas a tener en cuenta al escribir una buena consulta:

  • Limite su resultado:
    cuando no puede evitar filtrar su declaración de selección, entonces puede considerar limitar su resultado. Puede limitar su resultado usando limit, top

    Ejemplo –

    select TOP 3 
    from employee
    select * 
    from employee limit 10
  • No hagas que la consulta sea más compleja. Trate de mantenerlos simples y eficientes.

    Ejemplo:
    considere la siguiente consulta:

    select * 
    from employee 
    where id = 77 or id = 85 or id = 69

    Entonces, puede reemplazar el operador usando IN

    select * 
    from employee 
    where id in (77, 85, 69)
  • seleccione * para evitarlo, especialmente cuando tiene una combinación como al menos una columna dos veces, lo que es un desperdicio de recursos de servidor, base de datos y red.
  • Entienda que los agregados dejan de pensar en bucles.
    Agregados como: recuento , promedio , etc.

Publicación traducida automáticamente

Artículo escrito por Gourav Sardana y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *