Update files or a table every 5 seconds or for every update to a table whichever is the less frequent

dba.stackexchange https://dba.stackexchange.com/questions/168168

Pregunta

There is a table 'votescount' which is being updated every time a user vote.

I need to display three rows with maximum votes.

Now the problem is If the users are less in number and less frequent to update, a trigger will be better to extract the rows, otherwise, if users are more frequently voting, an event will be better.

So, is there a lightweight solution in between to solve the problem?

I'll prefer to write the results in a file because it will be faster to access from php.

I am working on a LAMP stack.

¿Fue útil?

Solución

This worked for me.

create event event_name on schedule every 5 second starts now()
do
begin
if (select update_time+5>=now() from information_schema.TABLES 
where table_name='Table_name')
then call procedure_name();
end if;
end//

Here the event checks every 5 seconds if any update happened in the last 5 seconds on the table. If yes it simply calls the procedure update_file or something.

Otros consejos

This question may be "premature optimization". Simply have the PHP code fetch the desired data when it needs to show it. That way it will always be up to date, not even 5 seconds late.

If you think this will not work, please provide SHOW CREATE TABLE and the associated queries.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top