Y realizar las etapas de la estrategia de optimización 2-8-SQL

pasos de ejecución de SQL

gramatical: Verificar el cumplimiento de las especificaciones de sintaxis SQL ortografía

cheques semánticos: Comprobar si la presencia o ausencia de acceso al objeto y el usuario tiene los permisos apropiados

Análisis: ¿Hay un cheque en la piscina compartida es resuelto por completo antes de que el mismo bien, si no, optar por omitir el plan de ejecución y producen programas ejecutar directamente

Análisis duro: SQL es presentar una acción de sobrecarga completa re-analizado a partir de cero, crear un árbol de análisis, plan de ejecución para la aplicación de SQL es caro, en muchos proyectos del mismo código de función para ser consistente con la unión variable

Resolución suave: se encontró con exactamente el mismo al analizar SQL buenos resultados saltará dos pasos detrás de la firme determinación en la piscina compartida (piscina compartida) en

Plan de Aplicación: La lista sangrada de los pasos está representada instrucción SQL

 


optimización de hardware:

1. Acceso camino: método de acceso B + índice de árbol, método de acceso índice hash, método de acceso racimo

2. La disposición física de los datos: Forma de guardar

3. memoria disponible

4. Disponible Procesador

El almacenamiento centralizado y almacenamiento distribuido. Se refiere al almacenamiento centralizado de todos los datos se almacena en el mismo nodo. Esta ayuda permitirá mejorar la eficacia de las consultas de bases de datos y modificaciones. Sin embargo, el almacenamiento centralizado tiene un gran riesgo, si el nodo aparece un daño irreversible se colgará la base de datos. Tales como terremotos causa la corrupción de base de datos.

6. algoritmo razonablemente eficiente operación: escaneo completo de tabla, índice de exploración, de bucle anidado, tipo - combinación de mezcla

Un almacenamiento de estado sólido

8.RAID

 

índice

5 tipos de índice de ventajas

Mediante la creación de un índice único, se puede garantizar la singularidad de cada fila de datos en una tabla de base de datos.

Se puede acelerar considerablemente la velocidad de recuperación de datos, que es la principal razón para crear el índice.

Puede acelerar la conexión entre la mesa y la mesa, sobre todo en referencia a un interés particular para los aspectos de integridad de datos.

Cuando se utiliza la recuperación de datos de paquetes y cláusula de clasificación, también puede reducir significativamente el tiempo de consulta de agrupamiento y clasificación.

Al utilizar el índice, puede procesar la consulta, utilice corrector para optimizar y mejorar el rendimiento del sistema.

 

Las condiciones deben ser indexados

1) En la columna menudo tienen que buscar, puede acelerar la búsqueda;

2) en una columna de clave principal, la estructura de disposición sólo es obligatoria y la organización de los datos en la columna de la mesa;

3) en la columna con la conexión regular, que principalmente alguna columna de clave externa, que puede acelerar la conexión;

4) creado en columnas que se requieren con frecuencia de acuerdo con el alcance del índice de búsqueda debido a que el índice ha sido solucionado, sus rangos designados son continuas; clave externa para acelerar la construcción del índice debido a la conexión también reducirá el riesgo de estancamiento.

5) a menudo necesitan para crear un índice en las columnas de ordenación, ya que el índice se ha resuelto, por lo que la consulta se puede utilizar para ordenar el índice para acelerar el tiempo de consulta de clasificación;

6) Crear un índice se utiliza a menudo en la cláusula WHERE de la columna por encima de condiciones de discriminación para acelerar la velocidad.


Sistema (Diseño)

1. Optimización algebraica - optimizador heurística

Tabla 2. contador

3. Resumen

4. El sub-tabla

5. Modelo Anti-Paradigma. modo lógico bien diseñada

6. indexación clave externa

7. posible, evitar el uso de una función personalizada. Debe escribir sentencias SQL tanto como sea posible para evitar el uso de funciones personalizadas, ya que para la función personalizada, el optimizador no puede hacer la optimización, si el abuso excesivo de la función personalizada dará lugar a la degradación del rendimiento de la base de datos. Sin embargo, en algunos casos es necesario, sólo se puede utilizar una función personalizada para lograr una consulta en particular.

 

optimizador de consultas heurística

1. Seleccione la operación se debe realizar lo más posible. La más importante, la más básica. ahorro de costes de ejecución puede a menudo varios órdenes de magnitud, de modo que el resultado del cálculo intermedio de la gran reducción

2. La operación de proyección y operación de selección simultáneamente. Si una pluralidad de operaciones de proyección y de selección, y que tienen una relación con la misma operación, todas estas operaciones puede completarse durante la exploración de esta relación a fin de evitar volver a escanear relación

3. La operación de proyección con sus ojos antes o después de la combinación. No hay necesidad de eliminar algunos de los campos y escanear de nuevo la relación

4. Algunos eligen el producto cartesiano de lo anterior, se va a realizar para combinar en una concatenación. La concatenación relación que en el mismo producto cartesiano ahorrar mucho tiempo

5. Encuentre subexpresión común

 

1) paradigma anti y el paradigma

El primer paradigma: Cada columna es un elemento de datos atómica indivisible.

El segundo paradigma: base dependiente de una primera porción de alivio paradigma.

En tercer patrón: eliminación de la base depende de la segunda transmisión de paradigma.

 

paradigma anti por el tercer paradigma es por medio de la adición de redundancia destruyó la tercera forma normal, los dos primeros paradigmas todavía tienen que seguir.

 

ventajas de paradigma:

a. escribir rápido porque no hay necesidad de escribir los datos redundantes, lo que reduce la carga de la escritura.

b. Modificar el ayuno porque por lo general sólo menos necesidades de actualización de los datos.

c. Puesto que no hay redundancia, por lo que no causa inconsistencias en los datos.

d., y menos necesidad de GROUP BY distintas.

La desventaja es: la necesidad de asociación.

 

Paradigma desventaja es que las ventajas de la anti-paradigma, ninguna correlación, y dado que en la misma mesa puede ser diseñado índice apropiado.

Aplicaciones prácticas normalmente no emplean paradigma completo, pero ponen algo de redundancia para reducir la tabla relacionada y la mesa, acelerar las consultas.

 

2) sub-tabla

Si los datos se pueden archivar en un estado donde la tabla de datos, tales como la terminación del modo de funcionamiento y el estado, se puede considerar completado y la tabla de modo de funcionamiento en los datos del estado, convierten los datos para completar el estado de la tabla de estado de finalización, ya que los datos es siempre funcionamiento en estado de completa, por lo que el sistema está funcionando así que no importa cuánto tiempo las tablas de datos del estado de ejecución son casi constantes, y el estado completo de datos, además de análisis estadístico, pero no requiere casi ningún consultas, lo que mejora en gran medida el funcionamiento del sistema la velocidad, la cantidad de datos en la tabla bajo control.

Además el análisis estadístico Para la escena, con el fin de reducir la tabla de unión puede requerir consulta de servicio desde el modo de funcionamiento y el estado de los dos estados para completar una segunda elección.

 

Para algunas de las enormes cantidades de datos, también se puede pensar en hacer el valor hash de un campo de acuerdo al almacenamiento de tabla de puntos, por supuesto, aumentar la complejidad de la aplicación, que es de ninguna manera, de ninguna manera es por lo general perfecto, la arquitectura es hacer compensaciones en base a los escenarios de aplicación reales , la llamada lealtad y piedad filial no se alcanzan, pero es más apropiado de alguna manera.

Otros problemas pueden ser resueltos por puntos distribuidos tabla de base de datos, una base de datos distribuida se fusionó de forma automática el almacenamiento automático tabla de consulta, protegido por una complejidad middleware de base de datos distribuida, todo tipo de sucio, quiere trabajo sucio.

 

3) Resumen

Por presenta las estadísticas de alguna gran cantidad de datos, en tiempo real, si no es necesario, se puede resumir en una base regular, como una vez por hora, resumen o sumario una vez al día, si usted requiere en tiempo real, a continuación, para diversos mesa grande, varios grupos por, no sólo muy lentamente estadísticas y fácil de afectar las operaciones normales del negocio. El autor de que la empresa sea antes, todas las noches abrir una amplia variedad de tareas regulares de recolección de datos, la base de datos no es ocupado por la noche, de 12:00 a 06:00 de la mañana, planificación de la tarea programada es completa, es realmente agotado ritmo ah, pero afortunadamente, el equipo no se pierde los estribos, monstruo. . Por supuesto, estas declaraciones son datos estadísticos a partir de ayer, todos los días de retraso, por lo general esto está permitido.

 

4) de tabla de contador

aplicación web con el fin de clics de registro, los clics se puede diseñar una mesa,

crear hit_counter mesa (unsigned int cnt no nulo);

 

Puesto que sólo hay un registro para la contención de bloqueo demasiado serio, pensar en qué solución hacer lo mismo con split bloqueo ConcurrentHashMap.

Estructura de la tabla modificado como sigue:

crear hit_counter mesa (tinyint ranura unsigned clave principal no nulo, cnt unsigned int no null);

100 avance en los datos modificados de este modo se puede utilizar cuando la instrucción que sigue,

de actualización del conjunto hit_counter cnt = cnt + 1, donde la ranura = RAND () * 100;

Cuando la suma de conseguir en ella, select sum (CNT) cnt de hit_counter;

 


Sistema (aplicación)

1. El uso racional y eficiente de los estados y los métodos de SQL, lo que sugiere que el optimizador optimizar el SQL

buena consulta

Siga el tamaño conjunto de resultados y el conjunto de datos intermedio

2. Ver el número de usuarios, la concurrencia. Y en consecuencia para comprobar su diseño físico, el diseño del sistema

3. Optimizar la configuración del servidor

 

sentencia SQL utilizando los factores a tener en cuenta

1) la cantidad total de datos

Sql considerar los factores más importantes: la cantidad de datos que se debe acceder, la ausencia de capacidad objetivo establecido, es difícil juzgar la eficacia de la ejecución de la consulta

Consulta 2) definen el conjunto de resultados

Buena consulta: esta condición se cumple pocos datos, se puede filtrar una gran cantidad de datos

Donde las palabras: sobre todo en sub-consulta o vista, en donde puede haber múltiples palabras

Eficiencia de filtración, alta y baja, afectado por otros factores

Factores: las condiciones de filtro, la declaración principal sql, consulta un gran impacto en los datos

Tamaño 3) conjunto de resultados

La cantidad de datos devueltos por la consulta, es importante para ser ignorado

El tamaño depende de los detalles de la mesa y filtros

Una excepción es el número del uso ineficiente independiente de la combinación de condiciones es muy eficiente

Desde un punto de vista técnico, el tamaño del conjunto de resultados de consulta no es importante, importante es la sensación de usuario

desarrolladores cualificados deben esforzarse por hacer que el tiempo de respuesta es proporcional al número de registros devueltos

Número 4) para obtener una mesa conjunto de resultados que se trate: el número de tablas puede afectar al rendimiento de

Conexión: Demasiados uniones de tablas (ocho) en relación a cuestionar la exactitud del diseño; Por Optimizer, con el aumento en el número de mesas, la complejidad de crecimiento exponencial; el momento de escribir consultas complejas demasiadas tablas, opciones múltiples vinculados probabilidad de fallo es muy alto

Ver: oscurecer el hecho de que varias uniones de tablas

La reducción de consultas complejas y visión compleja

5) el número de usuarios concurrentes (el número de usuarios modificar simultáneamente datos)

Tenga en cuenta el diseño de acceso de contención de bloque, bloqueo, bloqueo, garantizar la coherencia de lectura

En general, el rendimiento global de> tiempo de respuesta individual

El almacenamiento de datos utilizando bloques de tamaño fijo, acceso a múltiples registros, I / O interacciones es simple, y la memoria intermedia en el proceso, sin embargo, cuando los datos modificados es demasiado largo, se migrarán a otro bloque de almacenamiento; los bloques de datos en exceso puede causar problemas con el acceso a la contención de bloques de datos, el impacto de la actuación simultánea

 


optimizador y conceptos de SQL

 

Optimizer: Con búsqueda original teoría relacional (álgebra relacional) prever la transformación semántica equivalente efectiva y correcta, para encontrar el camino óptimo, puede generar nueva aplicación óptima del programa

Optimización: procesamiento de datos en tiempo real que se ejecuta a suceder

Optimización de los factores de influencia: el índice, la disposición física de los datos, tamaño de la memoria disponible, el número de procesadores disponibles, la cantidad de involucrados directa o indirectamente en la tabla de índices y datos

instrucción SQL operación de relaciones ejecuta, a continuación, realizar operaciones no relacionales (por fin)

 

Sobre las fases de procesamiento de consultas lógicas (Internet para encontrar, entenderlo)

DE: cláusula FROM de las dos tablas en el producto cartesiano ejecución anterior (producto cartesiano) (acoplamiento cruzado), para generar una tabla virtual VT1

ON: Filtros para aplicaciones VT1 ON. Sólo aquellos que hacen <condición_junta> verdadera línea única se insertó VT2.

EXTERIOR (JOIN): Si OUTER JOIN especifica (en relación CROSS JOIN o (INNER JOIN), tabla de reserva (tabla conservada: LEFT OUTER JOIN la tabla izquierda marcada como mesa reservada, la externa derecha de la tabla de la derecha marcado como mesa reservada, totalmente la combinación externa dos tablas se marcan como mesa reservada) partido se encuentra como una fila filas externas se añaden a VT2, VT3 generado. Si la cláusula FROM contiene dos o más tablas, un acoplamiento se genera en la mesa y los resultados una repetición tabla los pasos 1 a 3 hasta que todas las tablas completamente procesados.

DONDE: donde los filtros para aplicaciones VT3. Sólo cuando la fila <where_condition> sólo era cierto en VT4 inserción.

GROUP BY: una lista de columnas en la cláusula GROUP BY para agrupar filas en VT4, generada VT5.

CUBO | ROLLUP: el súper grupo (Suppergroups) de inserción VT5, generar VT6.

TIENE: HAVING filtros a aplicaciones VT6. Sólo cuando el <having_condition> se establece en true se insertará

VT7.

SELECT: SELECT procesamiento de listas, producir VT8.

DISTINCT: la eliminación de filas duplicadas de VT8, resultando VT9.

ORDER BY: las filas VT9 lista de columnas ordenadas en la cláusula ORDER BY, generar un cursor (VC10).

TOP: seleccionar un número específico o porcentaje de filas desde el principio del VC10, VT11-mesa, y regresó a la persona que llama.

 

Optimizador de alcance efectivo

El optimizador necesita la información que se encuentra en la base de datos

transformación equivalente se puede realizar en un sentido matemático

Optimizador considera que el tiempo de respuesta global

mejora Optimizer es independiente de la consulta

La estrategia es: Si se trata de un pequeño número de consultas, el optimizador optimizar todos; si se trata de un gran optimizador de consultas optimizarlo en su conjunto

 

filtración

1) ¿Cómo definir el factor más crítico en el conjunto de resultados, utilizando una variedad de factor de determinación técnicas SQL

2) condiciones de filtro significados:

Donde las palabras y palabras que tienen

Unirse a las condiciones de filtro

Seleccione los criterios de filtro

3) la calidad de las condiciones de filtro, dependiendo

Lo que se necesita en última instancia de datos es una tabla de la que

¿Qué valor de entrada se pasa al motor DBMS

Puede filtrar los datos no deseados de condiciones que

Alta eficiencia condición de filtro es la principal fuerza impulsora de la consulta

 

consulta SQL resumen de optimización

1. ¿Cómo lo que sugiere que la optimización optimizador de consultas

Usar tabla de unión se unen para dar a entender que cuando la tabla múltiple unirse a la operación, considere usar existe y en funcionamiento para optimizar el, y si no se utiliza la unión es permitir que el optimizador de consultas para optimizar sus propios, sus propios cuadros para determinar el orden de conexión (empezar con una pequeña mesa, y luego una gran tabla), puede ser menos eficiente

2. El multidimensional de reducción de dimensionalidad consulta, una mesa no se conectan más de tres, más de la subconsulta correlacionada no se convertirá en una vista incrustada, reducción de dimensionalidad

3. Considere la proporción de los datos extraídos en la tabla, cuando la consulta devuelve la cantidad total de datos registrados más de 10% no utilice el índice, el conjunto de resultados de consulta de menos de 10% es una consulta buena

4. Evitar el uso de distinta en la parte superior, y en uso existe para hacer frente a

5. Evitar el uso de select * en la parte superior, esto producirá una redundancia conjunto de resultados, reducir el rendimiento

 

Gran cantidad de principio de los datos de las consultas

Principio: No dejar el más rápido de los datos, la cantidad de datos consulta posterior etapa debe hacer frente a la falta, mayor será la eficiencia de la consulta

aplicación:

operaciones, como la declaración de la Unión establecer, pero no cortar y pegar

Agrupar por y tener 字句

Todas las condiciones de resultados de la polimerización afectan a la función de la frase se debe colocar hanving

Cualquier condiciones de polimerización independientes deben colocarse donde cláusula

Grupo mediante la reducción de la cantidad de datos que deben realizar la operación de procesamiento de clase

 

No correlacionados subconsultas se incrustan vista - la reducción de las dimensiones de la consulta

Ejemplos:

''

 


 

secuencia de procesamiento de imágenes de los estados

1. tabla combinada en la cláusula FROM (producto cartesiano)

2. Utilice la selección cláusula tupla donde las condiciones de la cláusula tuplas seleccionadas, estado de descarte no está satisfecho descartar aquellas que no cumplan la condición WHERE tupla

3. acumulados que agrupan de acuerdo con la cláusula GROUP BY tupla

4. Utilizar las condiciones cláusula HAVING agrupados conjunto de condiciones cláusula tuplas tuplas (grupo) después de seleccionar un paquete, desechar esas condiciones no se satisface tupla HAVING

5. La cláusula select cálculos estadísticos para generar cálculos estadísticos resultados cláusula tupla relación para generar resultados relación tupla

6. ordenar los resultados de acuerdo a la cláusula ORDER BY

 

Publicados 137 artículos originales · ganado elogios 2 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/m0_37302219/article/details/104856963
Recomendado
Clasificación