Come ottenere notifiche in tempo reale, quando si verifica una modifica del database (inserimento, aggiornamento, eliminazione)?

8

Sto creando un dashboard che dovrebbe monitorare una tabella di database. Ho solo accesso al database (nessun livello di applicazione). La tabella è piuttosto grande (10 milioni di righe), tuttavia non sta cambiando rapidamente (100 inserti / aggiornamenti al minuto)

Come posso sapere se la tabella è cambiata? Vorrei provare a colpire il database ogni secondo, ma questo sembra un approccio a forza bruta ...

Database: MySQL / Postgres

    
posta Kiril 07.05.2015 - 07:17
fonte

2 risposte

6

Puoi utilizzare i trigger.

CREATE TRIGGER notifyMe
ON table1
AFTER INSERT, UPDATE, DELETE 
AS
   EXEC msdb.dbo.sp_send_dbmail
        @profile_name = 'DB AutoMailer',
        @recipients = '[email protected]',
        @body = 'The DB has changed',
        @subject = 'DB Change';
GO
    
risposta data 07.05.2015 - 07:24
fonte
2

Per PostgreSQL conosco un modo per ricevere notifiche dal database quando cambia una riga.

  1. usa il trigger quando si inserisce / aggiorna / elimina.
  2. quando si verifica un evento invia una notifica a un socket client.
  3. assicurati che l'app abbia un client sul server.
  4. quindi la tua app riceverà una notifica.

Puoi vedere il mio codice o documentazione di PostgreSQL .

Sembra che la notifica non sia una notifica affidabile, ma almeno funziona per me.

    
risposta data 20.06.2017 - 02:24
fonte

Leggi altre domande sui tag