We use MySQL with MyIsam engine and have a situation where we need to update a huge number of rows (millions) on a daily basis while users can still be accessing the database.
We have users from different timezones from USA, UK, India, China. Data is downloaded from a third party source when the user first signs up. All users share the same set of tables, but their data does not overlap i.e. No user will ever be accessing the same rows as another user.
The third party system modifies the data so to keep our database up to date we download a new snapshot of the user’s data every night.The user’s data is updated at midnight relative to that user timezone.
Since all users share the same tables, this means the data update process can be updating the data of a user in an American timezone, while the users in the UK are actively browsing their data. This is where the problem lies. We have millions of data to be updated but we are not able to do.
Please suggest how to best update a users' data without affecting other users accessing the database. The data stored in database are numbers and all the columns are integers.