Red de conocimiento informático - Consumibles informáticos - MySQL de alto rendimiento: tabla de contadores

MySQL de alto rendimiento: tabla de contadores

Tabla de contadores

Si la aplicación guarda el contador en la tabla, puede encontrar problemas de concurrencia al actualizar el contador. Las tablas de contadores son muy comunes en las aplicaciones web. usarse para almacenar en caché los datos de un usuario. Generalmente es una buena idea crear una tabla separada para almacenar contadores como recuentos de amigos, descargas de archivos, etc. Esto mantiene la tabla de contadores pequeña y rápida. El uso de una tabla separada puede ayudar a evitar la caché de consultas. invalidaciones y se puede utilizar con algunas de las técnicas más avanzadas que se muestran en esta sección

Debe mantener las cosas lo más simples posible Supongamos que hay una tabla de contador con una sola fila de datos que registra el número de clics. el sitio web.

El problema es que para cualquier transacción que quiera actualizar esta fila, este registro existe un bloqueo mutex global (mutex) que permitirá que estas transacciones se ejecuten en serie para obtener una mayor concurrencia. actualice el rendimiento, también puede guardar el contador en varias filas y seleccionar aleatoriamente una fila para actualizar cada vez. Para hacer esto, debe actualizar el contador de la siguiente manera.

Luego agregue filas de datos a esta tabla con anticipación y ahora seleccione una ranura aleatoria (ranura) para actualizar

Si desea reducir el tamaño de la tabla Para evitar que la tabla se vuelva demasiado grande, puede escribir una tarea periódica que combine todos los resultados en el espacio numérico y elimine todos los demás espacios

mysql> UPDATE daily_hit_counter as c

> INNER JOIN (

> SELECCIONAR día SUM (cnt) COMO cnt MIN (espacio) COMO mslot

> FROM daily_hit_counter

> GROUP BY día

  > ) AS x USING (día)

> SET c cnt = IF (c ranura = x mslot x cnt )

> c ranura = IF (c ranura = x mslot c ranura)

mysql> DELETE FROM daily_hit_counter WHERE slot <> AND cnt =

Leer más rápido y escribir más lento

Para mejorar el rendimiento de las consultas de lectura, la velocidad a menudo requiere la creación de algunos índices adicionales. , agregar columnas redundantes o incluso crear tablas de caché y tablas de resumen. Estos métodos aumentarán la carga de escribir consultas y requerirán tareas de mantenimiento adicionales, pero estas son técnicas comunes al diseñar bases de datos de alto rendimiento. Aunque las operaciones de escritura se vuelven más lentas, mejoran significativamente. rendimiento de las operaciones de lectura

Sin embargo, las operaciones de escritura más lentas no son el único precio que se paga por las operaciones de lectura más rápidas. También puede haber un aumento en las operaciones de lectura y las operaciones de escritura. Volver al directorio MySQL de alto rendimiento

? ¿Recomendación del editor

? ¿Se revela el marco ASP NET MVC

Tecnología de índice Oracle

? NET tutorial de capacitación en desarrollo lishixinzhi/Article/program/MySQL/201311/29673