php数据库用一个sql取数据还是多个sql分开取数据好

假设数据库里有1000万条数据,根据特征所有数据可以分为10个组。为了说明方便,我们假定每个组都是100万条。我想到了两种取数据的方式,不知道那种效率更高。第一种:每个组... 假设数据库里有1000万条数据,根据特征所有数据可以分为10个组。为了说明方便,我们假定每个组都是100万条。我想到了两种取数据的方式,不知道那种效率更高。
第一种:每个组的特征作为筛选条件,每个组一个sql,这样就需要10条sql,每条返回100万条。
第二种:直接通过一个sql取出所有的1000万条数据,再通过php循环每一条数据,把它分到对应的组里。

第一种需要查询的次数多,但是单次返回的数据量少,第二种只需一次查询,但是返回的数据量大,而且还需要通过循环做后续分组处理。不知道哪一种更好呢?
展开
 我来答
匿名用户
2019-01-25
展开全部
php使用的数据库一般是mysql,当数据量大于1000万时,为了效率最好还会进行分表存储。
这要看你应用在什么场合了,如果只是单纯的数据处理,不需要取出来使用的话,可以直接在数据库里操作,比如建十张表,根据特征把1000万条数据插入到不同的表里。如insert into table_1 select * from table。
如果要取出来使用的话,建议写执行脚本,在数据库空闲时(如零点之后)执行该脚本,将处理的结果保存在另外一张表里,再从这张表里获取想要的结果。
追问
主要是用于统计展示的情况。
比如查询列出某个网站每个栏目下所有文章的点击量总和分别是多少。同时可以指定查询任意时间区间的数据。查询条件是动态的,不适合使用定期归档的方式。
追答
点击量一般都是最小是按天查询,所以可以将当天之前的记录按栏目和天进行点击量的归档,查询当天之前的点击量时,就查这个归档表。
查询当天的点击量时,就查记录表。
归档表:catid day num
点击量记录表中,可以将归档的数据进行删除,保持需要的详细数据(如:7天前、15天前、30天前);也可以将归档的数据转移到其他表中。
syht2000
高粉答主

2019-01-25 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
哪种都不行,没这样做的,后一种更不可取,一般直接按你的需求写出一条SQL或存储过程就行了(它的效率取决于你数据库里的索引),这个都是要按实际情况来的,如果最终实在不能优化,一般 来说也可以创建定时任务,在数据库压力比较小的时间段(比如凌晨)进行数据处理。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式