插入海量数据时候 sql优化


1. INSERT INTO `table1` (field1,field2) SELECT field3,field4 FROM `table2`;


2. 如果遍历table1,然后再插入到table2时,可以先执行一个select空语句,把所有数据都遍历出来,然后放到缓存(这里可能有缓存命中的概率问题);

   这样继续分段遍历,速度、效率上就会快一些;

   如果该sql语句中有left join on,遍历出来的数据不会放到缓存中,改用where 语句代替

SELECT a.`contentid`, a.`status`, b.`content` FROM `#table_content` as a, `#table_article` as b WHERE a.`contentid` = b.`contentid` AND a.`status` = 6;


放到缓存以后,再次执行会从缓存里取数据,执行时间为0


只是针对简单查询




你可能感兴趣的:(插入海量数据时候 sql优化)