REPLACE performs a DELETE and an INSERT. "Upsert" (INSERT .. ON DUPLICATE KEY UPDATE ..) is a better replacement.
If you are replacing every row, there it is better to:
build a new table
RENAME TABLE real TO old, new TO real;
DROP TABLE old;
The is essentially no downtime for the flipover. (Note: this does neither Replace nor Update.)
If you ...
Are you really updating every field in every record every day?
You'd be better off loading a whole separate table with new data and then making your Application switch over to use that.
One way I've see this done is with two Tables and View over the top of them. This works really well for static and Reference data. While your Application is running with ...