Red de conocimiento del abogados - Preguntas y respuestas jurídicas - 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 escriba una tarea periódica que combine todos los resultados en el espacio numérico y elimine todos los demás espacios

mysqlgt UPDATE daily_hit_counter as c

INNER JOIN (

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

  gt; FROM daily_hit_counter

  GRUPO POR día

  gt; USANDO (día)

  gt; SET c cnt = IF (c slot = x mslot x cnt )

  gt; c slot = IF (c slot = x mslot c slot)

mysqlgt; DELETE FROM daily_hit_counter WHERE slot lt;gt; AND cnt =;

Lee más rápido y escribe más lento

Para mejorar la velocidad de las consultas de lectura, A menudo es necesario crear algunos índices adicionales, agregar columnas redundantes o incluso crear tablas de caché y tablas de resumen. Sin embargo, estos métodos aumentarán la carga de escribir consultas y requerirán tareas de mantenimiento adicionales al diseñar una base de datos de alto rendimiento. técnicas comunes. Aunque la operación de escritura se vuelve más lenta, el rendimiento de la operación de lectura mejora significativamente.

Sin embargo, la operación de escritura más lenta no es el único precio que se paga por la operación de lectura más rápida. desarrollando operaciones de lectura y escritura

? Volver al catálogo MySQL de alto rendimiento

? ¿Se revela el marco ASP NET MVC?

Tecnología de índice Oracle

Videotutorial de capacitación sobre desarrollo de ASP NET lishixinzhi/Article/program/MySQL/201311/29673