Detección de operaciones lentas de bases de datos en Laravel 9.x — Amit Merchant — Un blog sobre PHP, JavaScript, etc.

Cuando se trabaja con bases de datos con aplicaciones web, nunca se sabe cuándo una consulta, que funcionaba bien, comienza a ralentizarse en determinados escenarios.

Por ejemplo, en un escenario donde la indexación no se realiza correctamente o los datos inflados en una tabla se han vuelto extremadamente grandes.

Es posible que desee saber cuándo le sucede algo así a su aplicación, ¿verdad? Entonces, supongamos que está trabajando con MySQL, la única forma de verificar esto es usar el registro de consultas lentas que se puede usar para encontrar consultas que tardan mucho tiempo en ejecutarse.

El registro de consultas lentas es una gran herramienta para determinar las consultas lentas y definitivamente debería estar en su lugar, pero a veces solo desea recibir una notificación de lo que va mal. Para que llegue rápidamente al problema lo antes posible.

Aquí es donde esta nueva utilidad de base de datos que se agregó en Laravel 9.x puede ser muy útil.

los DB::whenQueryingForLongerThan método

Este PR de Tim MacDonald agrega un nuevo whenQueryingForLongerThan en el IlluminateSupportFacadesDB fachada que le permite comprobar si las operaciones tardan más del tiempo especificado en consultar la base de datos durante una consulta/trabajo y notificarle.

Para comenzar, debe configurar el DB::whenQueryingForLongerThan en el boot método de su aplicación AppServiceProvider De este modo.

<?php

namespace AppProviders;

use IlluminateSupportServiceProvider;
use CarbonCarbonInterval;
use IlluminateSupportFacadesDB;
use IlluminateDatabaseConnection;
use IlluminateSupportFacadesLog;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        DB::whenQueryingForLongerThan(CarbonInterval::seconds(5), function (Connection $connection) {
            Log::warning("Database queries exceeded 5 seconds on {$connection->getName()}");

            // or notify the development team...
        });
    }
}

Como puede ver, una vez configurado, el whenQueryingForLongerThan El método ejecutará su apagado cuando tarde más de 5 segundos en consultar la base de datos durante una consulta/trabajo.

También tenga en cuenta que esto es por conexión. Por lo tanto, también obtendrá todos los detalles sobre la conexión que se ha ralentizado.

¡Y es todo! ¡Esta es una forma rápida y sucia de recibir notificaciones sobre algunas operaciones lentas de la base de datos en Laravel 9.x!

Si quieres conocer otros artículos parecidos a Detección de operaciones lentas de bases de datos en Laravel 9.x — Amit Merchant — Un blog sobre PHP, JavaScript, etc. puedes visitar la categoría Código.

Deja un comentario

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

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas