背景:您需要在订单号中筛选所有不同的手机号码,订单号约为2000万+
思维
1.批量获取数据库数据。
2.根据移动电话号码的前四位数字,从移动电话号码的前四个开始,将数据放在文件中。例如:188050502xxxx放置在File 1880,1881502xxxx中的1880502xxxx,于1881年放置。这些文件均匀地放置在A文件夹下。
3.遍历文件夹A,确定文件是否超过某个设置值,可以由您自己确定该值。如果超过该值,请在流中读取文件内容,以防止内存不足,然后继续拆卸,然后将其放入另一个文件夹中,例如:188050210xx将其放入188050210文件,188050211xx Holiday 1888050211文件。
4.直到获得的文件少于设定值,您可以一次读取PHP并将其拆卸为数组。使用array_nique函数在不重复的情况下获得唯一数字。
同时使用时,MySQL限制和订单丢失数据问题记录:
从pft_module_price选择= 1订单按等级desc限制0,10
从pft_module_price选择= 1订单按等级desc限制10,10
当两个SQL执行时,在两个运行结果中将出现一些重复的数据和某些数据的丢失。猜测等级值是相同的,并且两种是不同的,导致了两个收益的重复和丢失。
从pft_module_price选择= 1订单按等级,id desc limit 0,10
订购时添加更多ID,结果正常。
我发现额外的使用相交。
通过设置设置Optimizer_Switch ='index_merge_intersection = off'
执行Exorain SQL语句再次使用索引条件执行SQL语句速度变得快速
或强行不使用索引