php大数据量问题,请教
在网站上用户要下载历史记录,有几百万条记录,一旦用户选择全部条件搜索后下载,数据库和服务器就好像挂掉了,请问有哪些方法可以解决这类问题?
------解决思路----------------------
php打包,分割成几个文件,最后zip下载。
点击下载后,异步处理,后台启动一个php进程处理,避免服务器受到影响。
------解决思路----------------------
数据库做个主从,这种查询就直接走从数据库好了,如果实时性 不强的话,也可以考虑在空闲时段打包好(可以增量打包如果用户可接受的话)提供给用户下载,
最重要的一点 优化你下载的程序。
------解决思路----------------------
这取决于你打算将什么样格式的数据给用户
如果是在查询后逐条组装,显然是很慢的
如果格式比较简单,可用 INTO OUTFILE 子句直接将查询结果保存于文件。再将该文件的连接发给用户
INTO OUTFILE 子句默认产生的文件是以 Tab 做字段分隔符(很普通的 csv 格式),当然你还可以指定
INTO OUTFILE 产生的文件,可以用 LOAD DATA INFILE 指令导回表中。
不失为一种数据备份的方法