Categorías
Otros

[MYSQL Statement Optimization] (Artículo 3) Optimización de detalles simples

Creo firmemente que los detalles determinan el éxito o el fracaso, no mire estas pequeñas optimizaciones!

Uno: Solo tiene que usar el límite 1 siempre y cuando consulte una línea de datos.

Las siguientes condiciones de optimización deben utilizarse según el escenario de desarrollo real

1: [Use union all instead of or]

[Between instead of in, not in]

Las operaciones de expresión de los campos pueden provocar un error de índice

[LIKE blurring query should be noted that% must fail at the left side of the query condition (% xx%,% xx))]


DosVarios principios de indexación

1, el principio más importante, principio muy importante, MySQL siempre coincidirá con el derecho a la consulta correcta (>, <, Entre, Como) detener la coincidencia, tales como A 1 = «» y = «» b = » 2 «c =»> 3 y D = 4 Si se puede utilizar el índice de la secuencia de secuencia (A, B, C, D), D, si se establece el índice de (A, B, D, C) Se puede utilizar en el orden de A, B y D.

2, = y IN se puede secuenciar, como A = 1 y b = 2 y c = 3 el índice de establecimiento (A, B, C) puede estar en cualquier orden, el optimizador de consultas de Mysql le ayudará a optimizar la forma de un índice para identificar

3. Trate de seleccionar una lista de alta definición como índice, la división de la división es conteo (COL distinto) / recuento (*), lo que indica que el campo no se repite, cuanto mayor sea el número de registros que escaneamos, se distinga la clave única El grado es 1, y algunos estados, el campo de género puede dividirse en 0 frente al big data, que algunas personas pueden preguntar, ¿hay alguna experiencia en esta proporción? Diferente usando la escena, este valor también es difícil de determinar, los campos de Join us necesitan ser 0.1 o más, es decir, 1 escaneo de 10 registros

  Patrón de diseño Java-17, implementación de patrones de intérprete de lenguaje personalizado

4, la columna de índice no puede participar en el cálculo, mantener la columna «limpia», como from_unixtime (CREATE_TIME) = ‘2014-05-29’, no se puede utilizar el índice, el motivo es simple, el árbol B + se almacena en la tabla de datos de la tabla de datos. Sin embargo, al realizar la recuperación, debe aplicar una función a todos los elementos para comparar, obviamente demasiado costo. Por lo tanto, la declaración debe escribirse en create_time = UNIX_TIMESTAMP (en lo que va de 2014-05-29»);

5, intente ampliar el índice, no cree un nuevo índice. Por ejemplo, hay un índice de A en la tabla, ahora agregue (A, b) índice y, a continuación, solo necesita modificar el índice original

En tercer lugar, seleccione el motor de almacenamiento adecuado para la tabla:
Myisam: Aplicación y operación de inserción al aplicar, sólo una pequeña cantidad de actualización y eliminación, y la integridad de la transacción no es muy alta.

Innodb: Procesamiento de transacciones y requisitos de coherencia en condiciones de simultaneidad. Además de la inserción y la consulta, hay muchas actualizaciones y eliminaciones. (InnoDB reduce eficazmente el bloqueo y la actualización causados por el bloqueo). Para la tabla de tipos INNODB que admite la transacción, la razón principal de la velocidad es que la configuración predeterminada de AutoCommit está abierta y el programa no llama explícitamente a Las transacciones iniciales de BeGin, lo que resulta en la confirmación automática de cada inserción, lo que afecta gravemente a la velocidad. Se puede llamar a Begin antes de ejecutar SQL y varios formularios SQL (incluso si AutoCommit está abierto), mejorará en gran medida el rendimiento.

.

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

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