Truncating MySQL table and insert newly records on daily basis
Instead, do

CREATE TABLE new LIKE real;
load new data into `new` by whatever means
RENAME TABLE real TO old, new TO real;
DROP TABLE old;


Notes: 


The second step is the only slow step.  
The RENAME is atomic.  
You can continue to read the table during the process.  
Do not use any transactions or table locks.