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