84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
用php处理一个超大sqlite文件(几十G),有什么好方法? 处理的时候 直接死了~~
认证高级PHP讲师
这么大的文件PHP肯定是处理不了的,PHP处理文件首先要把它读到内存中,而每个脚本能够使用的内存跟PHP配置文件中的memory_limit是相关的。只要你内存足够大,你可以设置它为不受限制,就能够使用系统的最大内存。
推荐的解决方法是先把文件切小,通过shell程序比如sed把文件按一定大小(大小根据你的PHP内存大小确定)切割成若干个小文件,然后再用PHP处理。
逐行读取,php有这个函数,每次读取3行,但是sqlite 是本地数据库,读取是驱动的事情吧,和php没多大关系吧,别一次性全打印就行了吧
应该把数据转到MYSQL再提供给PHP读写。sqlite本来是个小巧的文件数据库,处理巨大数据的能力低下。
震惊!这么大的数据量居然还用sqlite。 再说你一次性把几十G读到内存,除非你的内存真的有几十G,否则一定爆内存。建议尝试分割这个数据库或转换成其他类型的数据库处理。
PHP对文本的处理并不理想,很慢的。 入mysql后在做处理的方案是可行的,就是比较耗时。
参考 用它查吧
不懂sqlite 但是这么大的文件直接处理一定很难。但是大体上有一个思路。就是拆解。按照库啊。表啊什么的。
既然是sqlite文件,那就按数据库读取->处理->存储就可以了,php默认能直接使用sqlite.
sqlite转Mysql吧,然后优化索引,应该没啥问题了。
参考一下这货
这么大的文件PHP肯定是处理不了的,PHP处理文件首先要把它读到内存中,而每个脚本能够使用的内存跟PHP配置文件中的memory_limit是相关的。只要你内存足够大,你可以设置它为不受限制,就能够使用系统的最大内存。
推荐的解决方法是先把文件切小,通过shell程序比如sed把文件按一定大小(大小根据你的PHP内存大小确定)切割成若干个小文件,然后再用PHP处理。
逐行读取,php有这个函数,每次读取3行,但是sqlite 是本地数据库,读取是驱动的事情吧,和php没多大关系吧,别一次性全打印就行了吧
应该把数据转到MYSQL再提供给PHP读写。sqlite本来是个小巧的文件数据库,处理巨大数据的能力低下。
震惊!这么大的数据量居然还用sqlite。
再说你一次性把几十G读到内存,除非你的内存真的有几十G,否则一定爆内存。
建议尝试分割这个数据库或转换成其他类型的数据库处理。
PHP对文本的处理并不理想,很慢的。 入mysql后在做处理的方案是可行的,就是比较耗时。
参考 用它查吧
不懂sqlite 但是这么大的文件直接处理一定很难。但是大体上有一个思路。就是拆解。按照库啊。表啊什么的。
既然是sqlite文件,那就按数据库读取->处理->存储就可以了,php默认能直接使用sqlite.
sqlite转Mysql吧,然后优化索引,应该没啥问题了。
参考一下这货