我在服务器上有一个表格,其中包含字段docid (bigint(20))
,msgtext (longtext)
以及其他我不关心的字段。
我想要做的是在msgtext
上运行一个函数(使用一些正则表达式来清除msgtext
),然后将结果添加回新创建的列{{1}中的数据库中}}。我的目标是优化这一点,并在理想情况下最大限度地减少我自己在此过程中的内存需求。
为了最大限度地减少内存需求,最简单的方法是一次执行此操作。即我拉下一行,运行该功能,然后推回结果。当然这有点极端,所以对我来说更有意义的是,一次下拉行,例如10,000行,以最小化选择查询。我想要做的是尽量减少更新查询。即我的选择查询类似于
cleanMsgtext
我可以通过提前拉下docids或者其他任何东西(虽然也许这也是愚蠢的)来以编程方式轻松地做到。仅这一点就引起了我的满意和巨大的加速。
我想知道是否有相同的方法来更新表格。我可以以类似的方式连接更新消息,以便从多个查询创建一个查询吗?如果你每次都拉下整行,我已经读过这个可能的东西,但对我来说,docid是一个唯一的标识符,所以看起来似乎没有必要。
总而言之,我想选择大小为N的批次,在本地对数据进行处理,然后再按批量N再次更新。这可能吗?