解决PHP大数据量
2021-06-28 12:06
标签:嵌套循环 查询 焦点 黑白 内存溢出 生成 是什么 合格 数据库 无锡、佛山、合肥、大连、福州、厦门、哈尔滨、济南、温州、南宁、长春、泉州、石家庄、贵阳、常州、南通、嘉兴、太原、徐州、南昌、金华、惠州、珠海、中山、台州、烟台、兰州、绍兴、海口、扬州 工业X-RAY检测设备可用于锂电池检测等电池行业,电路板行业,半导体封装,汽车行业,电路板组装(PCBA)行业等,以观察和测量包装后内部物体的位置和形状,发现问题,确认产品是否合格,并观察内部状况。 每一个行业都会有一些得力的设备帮手,今天我们来聊一聊飞速发展的电子行业中的得力干将“x-ray检测设备”,相信在此行业工作的朋友都有一定的了解。此文为大家总结了x-ray检测设备原理以及应用领域,让大家看完能够快速掌握。 一、x-ray检测设备原理 1、首先X-RAY设备这个装备主要是利用X光射线的穿透作用,X光射线波长很短,能量特别大,照在物质上时,物质只能吸收一小部分,而大部分X光射线的能量会从物质原子的间隙中穿过去,表现出极强的穿透能力。pcba 2、而x-ray设备能检测出来就是利用X光射线的穿透力与物质密度的关系,利用差别吸收这种性质可以把密度不同的物质区分开来。所以如果被检测物品出现断裂、厚度不一,形状改变时,对于X光射线的吸收不同,产生的图像也不同,故而能够产生出差异化的黑白图像。 3、可用于IGBT半导体检测、BGA芯片检测、LED灯条检测、PCB裸板检测、锂电池检测、铝铸件无损探伤检测。 4、简单点说就是通过使用非破坏性微焦点x-ray设备输出高质量的荧光透视图像,然后转换由平板探测器接收到的信号。所有功能的操作软件只需鼠标即可完成,非常易于使用。标准的高性能X光管可以检测5微米以下的缺陷,有些x-ray设备能检测2.5微米以下的缺陷,系统放大倍数可以达到1000倍,物体可以移动倾斜。通过x-ray设备可以执行手动或自动检测,并自动生成检测数据报告。 二、X-RAY检测设备的应用领域 1、工业X-RAY检测设备应用领域十分广泛,常见的可用于锂电池检测等电池行业,电路板行业,半导体封装,汽车行业,电路板组装(PCBA)行业等,以观察和测量包装后内部物体的位置和形状,发现问题,确认产品是否合格,并观察内部状况。 2、具体运用范围:主要用于SMT、LED、BGA、CSP倒装芯片检测,半导体、封装元器件、锂电行业,电子元器件、汽车零部件、光伏行业,铝压铸模铸件、模压塑料,陶瓷制品等特殊行业的检测。 分析 1、工具 2、类库 1、超时 2、溢出 解决方案 2、使用csv导出 3、理想方案 进行算法优化,在数据循环时,减少嵌套循环,生成csv或者Excel的数据对象时,一次成型,减少数据库查询次数,如果需要用到其他数据请提前生成相应数据结构的数据。 4、最快方案 SELECT * FROM table_name INTO OUTFILE ‘F:/test.csv‘ FIELDS TERMINATED BY ‘,‘ OPTIONALLY ENCLOSED BY ‘"‘ LINES TERMINATED BY ‘\r\n‘; 运行此语句可能出现如下错误: 这个是由于Mysql的配置权限问题,可以运行SHOW VARIABLES LIKE ‘%secure%‘;查看 secure-file-priv 当前的值是什么,NULL就代表禁止导出,所以需要设置一下。在Mysql安装路径下的my.ini文件,修改设置一下路径,没有的话添加上此配置: secure_file_priv=F:/ 50w+的数据你会发现很快就导出了。你也可以写此此语句,知道此文件在服务器上的路径,进行打包下载即可。 解决PHP大数据量 标签:嵌套循环 查询 焦点 黑白 内存溢出 生成 是什么 合格 数据库 原文地址:https://www.cnblogs.com/c919dahuiji/p/14929746.html
本教程操作环境:windows7系统、Dell G3电脑。
PHP中我们了解了那么多关于PHP的知识,不知道你们对运用PHP的技能掌握多少,我相信很大一部分人会了解但是不会运用知识,那么不急本篇文章就是带领大家更深刻的去运用PHP。
首先明确我们需要导出的数量50W+,其次我们使用过都知道Excel2003版最大行数是65535行,Excel2007版的行数(1048576行)才能达到我们的要求,所以我们需要使用Excel的版本必须为2007版及以上。
目前最常用的PHP处理Excel的类库是PHPExcel(经实例测试导出1w条数据,再加上各种数据判断处理我用了5-8分钟);我在网上还查到一款叫PHPOffice(这个我没用过,大家可以尝试一下,据说效率比PHPExcel要好,等下次再写篇博文介绍一下);还有一个fputcsv(),导出的是csv格式文件,也可以用Excel文件打开。
这个是直接的,请求超时。在这个多的数据请求处理下,超市非常常见,这时我们需要修改PHP的配置:set_time_limit(0)。
我们一次性的把所有数据从数据库取出填充到内存中,一下不光内存存储不够,并且如果服务器CPU配置不高的话使用率一下也能达到100%,会造成服务器卡负载。关于溢出我们也需要修改PHP的配置:ini_set(‘memory_limit‘, ‘1024M‘)。
1、使用PHPExcel导出
使用此种方案一下导出50w+的数据体验非常的不好,经测试之后是虽说是可行的,服务器上也可以导出,就是时间会慢一些,而且会是一直下载状态。如果使用php类库,建议将php升级到最新的php7版本节省内存,且计算速度要快
如果不是用php类库,那么fputcsv()是最佳方式,这种方式要比PHPExcel好很多;因为csv文件较小,csv文件数据可存放数量可大可小,csv生成不占用大量CPU和时间,而Excel的生成时间随着文件数据量的增加成而所需时间越多。
将数据按照某种条件进行分割,减少导出的数据量,例如按照日期进行导出,可一周导出一次或者一天导出一次,数据分割肯定是必须的步骤,防止内存溢出,运行超时;
将需求交给运维,直接运行sql语句进行导出:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement