php对mysql提取数据那种速度更快
问题描述
1、单条数据,即只有一行数据,然后这行数据里面的字段article里面有40万个单词,以逗号(,)分割
2、有40万条数据,即40万行,每行的字段article中有一个单词
如果方案1的速度快,要怎么分别循环提取出来,然后进行组合(以逗号分割),循环组合成40万条,<a href='https://www.haobala.com/wenda/分割后的单独一个单词'>分割后的单独一个单词</a>
问题解答
回答1:我认为应该是方案2的速度快。
先取1000条数据:
SELECT `article` FROM `table` ORDER BY id DESC LIMIT 0,1000
对1000条数据逐个处理:
foreach ($list as $key => $value) {$link = ’<a href='https://www.haobala.com/wenda/’.$value[’article’].’'>’.$value[’article’].’</a>’; ....}
再处理下面1000条
回答2:光查询的话,前者肯定要快,但是一个字段存40W个单词(一个单词按7个字母算--含逗号),就是将近300W个字母,大概有3M的数据。但是查询出来,对这么长的字段进行切割,感觉不太靠谱。
回答3:如果是简单的在页面上列出40w个单词这种业务,我觉得还是第一种方法快
理由:一、查询方法1.扫描一行就能获取到记录,方法2那就需要扫描很多行了,花费的时间就不言而喻了(表越大越明显)。这个过程方法1比方法2优越太多了二、输出方法1需要独立分割,这对php来说根本不叫事。然后都需要缓存输出。
总的来说,方法1的开销比方法2的开销少。
相关文章:
1. javascript - 关于一段 for 循环代码执行顺序的问题2. 请问连接文件怎么写3. 求解答:访问不了虚拟服务器的问题?4. docker-machine添加一个已有的docker主机问题5. docker 17.03 怎么配置 registry mirror ?6. java - 3个dao的数据根据请求参数选择一个映射到一个url上,怎么写比较好?7. docker网络端口映射,没有方便点的操作方法么?8. docker - 各位电脑上有多少个容器啊?容器一多,自己都搞混了,咋办呢?9. 在mac下出现了两个docker环境10. javascript - 读取页面源码,页面中所有的换行都被当成<br/>读取出来 了,,求解应该怎么让它被正确的解析