php – 加快大量的mysql更新和插入
我有一个应用程序需要通过大量的条目更新大量的数据.基本上它做了大约7,000个插入和/或更新,但是它需要一个漫长的时间(比如近9分钟,平均每个查询约0.08秒).本质上,我正在寻找一般的加速,以提出多个这样的请求(我不期望一个具体的答案我的模糊的例子…这只是希望,有帮助的解释).
以下是分析请求的一些示例: SELECT `habitable_planets`.* FROM `habitable_planets` WHERE (timestamp = '2010-10-15T07:30:00-07:00') AND (planet_id = '2010_Gl_581_c') INSERT INTO `habitable_planets` (`planet_id`,`timestamp`,`weather_air_temp`,`weather_cell_temp`,`weather_irradiance`,`weather_wind_float`,`biolumin_to_date`,`biolumin_detected`,`craft_energy_usage`,`craft_energy_consumed_to_date`) VALUES (?,?,?) SELECT `habitable_planets`.* FROM `habitable_planets` WHERE (timestamp = '2010-10-15T07:45:00-07:00') AND (planet_id = '2010_Gl_581_c') INSERT INTO `habitable_planets` (`planet_id`,?) 重复恶作剧(约7,000次).这是一个更新,收集在24小时内间隔生成的数据,然后每天对数据库进行大量更新.鉴于我所看到的有限的一点,你们有什么建议来加速这个过程? 例如…它是有意义的,而不是为每个时间戳选择一个,一个选择一个范围,然后在脚本中迭代它们; 模糊地喜欢: SELECT `habitable_planets`.* FROM `habitable_planets` WHERE (planet_id = '2010_Gl_581_c') 将该结果分配给$foo,然后执行以下操作: foreach ($foo as $bar) { if ($bar['timestamp'] == $baz) // where $baz is the needed timestamp { // do the insert here } } 编辑:为了增加一点,在我的情况下提高响应能力的一件事是改变一堆代码来检查现有的记录,并根据使用
一些有用的链接:
> 32 Tips To Speed Up Your MySQL Queries 从MySQL文档: Speed of INSERT Statements说:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |