使用数据库排序or使用具体编程语言排序
2016-10-21 22:12
204 查看
原文地址:点击打开链接
问:请提供一些必须在MySQL中排序的实例?
答:在PHP中执行排序更优的情况举例如下:
数据源不在MySQL中,存在硬盘、内存或者来自网络的请求等;
数据存在MySQL中,量不大,而且没有相应的索引,此时把数据取出来用PHP排序更快;
数据源来自于多个MySQL服务器,此时从多个MySQL中取出数据,然后在PHP中排序更快;
除了MySQL之外,存在其他数据源,比如硬盘、内存或者来自网络的请求等,此时不适合把这些数据存入MySQL后再排序。
必须在MySQL中排序的实例如下:
MySQL中已经存在这个排序的索引;
MySQL中数据量较大,而结果集需要其中很小的一个子集,比如1000000行数据,取TOP10;
对于一次排序、多次调用的情况,比如统计聚合的情形,可以提供给不同的服务使用,那么在MySQL中排序是首选的。另外,对于数据深度挖掘,通常做法是在应用层做完排序等复杂操作,把结果存入MySQL即可,便于多次使用。
不论数据源来自哪里,当数据量大到一定的规模后,由于占用内存/Cache的关系,不再适合PHP中排序了;此时把数据复制、导入或者存在MySQL,并用INDEX优化,是优于PHP的。不过,用Java,甚至C++来处理这类操作会更好。
问:请提供一些必须在MySQL中排序的实例?
答:在PHP中执行排序更优的情况举例如下:
数据源不在MySQL中,存在硬盘、内存或者来自网络的请求等;
数据存在MySQL中,量不大,而且没有相应的索引,此时把数据取出来用PHP排序更快;
数据源来自于多个MySQL服务器,此时从多个MySQL中取出数据,然后在PHP中排序更快;
除了MySQL之外,存在其他数据源,比如硬盘、内存或者来自网络的请求等,此时不适合把这些数据存入MySQL后再排序。
必须在MySQL中排序的实例如下:
MySQL中已经存在这个排序的索引;
MySQL中数据量较大,而结果集需要其中很小的一个子集,比如1000000行数据,取TOP10;
对于一次排序、多次调用的情况,比如统计聚合的情形,可以提供给不同的服务使用,那么在MySQL中排序是首选的。另外,对于数据深度挖掘,通常做法是在应用层做完排序等复杂操作,把结果存入MySQL即可,便于多次使用。
不论数据源来自哪里,当数据量大到一定的规模后,由于占用内存/Cache的关系,不再适合PHP中排序了;此时把数据复制、导入或者存在MySQL,并用INDEX优化,是优于PHP的。不过,用Java,甚至C++来处理这类操作会更好。
相关文章推荐
- 数据库中排序的对比及使用条件详解
- 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
- 问题描述: 在使用mybatis对数据库执行更新操作时,parameterType为某个具体的bean,而bean中传入的参数为null时,抛出异常如下:
- BaseDao加强版,可连接sqlserver和mysql,使用时直接在main类调用即可,需在src目录下创建一个properties后缀的文件夹,用来存放数据库名称和地址,具体如下
- 如何使用mysqldump命令导入导出数据库下的数据或表结构(远程or本地都适合)
- 数据库查询性能优化(合理使用索引|避免或简化排序|避免对大型表进行全表顺序扫描|避免使用相关的子查询|避免使用通配符匹配 )
- jQuery easyui dataGrid 动态改变排序字段名,一般情况下,在使用的时候,我们会点击相应字段进行排序,这里以JAVA为例,后端的实体类字段有可能和数据库的字段不一致; 如:实体类中的
- ztree使用系列四(ztree实现同级拖拽排序并将排序结果保存数据库)
- java中list集合的内容,如何使用像数据库中group by形式那样排序
- 10分钟理解Android数据库的创建与使用(附具体解释和演示样例代码)
- 数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)
- 安装Confluence和JIRA使用SQLServer时数据库的排序规则
- 查看系统的I/O使用iostat命令而使用iotop可以根据I/O统计信息排序,追踪到具体的进程
- 使用openOrCreateDatabase()创建一个数据库
- mongodb 在包含or条件查询的时候,尽量不使用排序
- SQL2008 使用新创建的身份验证连接到数据库后无法访问具体数据库
- ztree使用系列四(ztree实现同级拖拽排序并将排序结果保存数据库)
- 出现的问题: A、使用命令行无法登录oracle或者显示ORA-01109:数据库未打开; B、使用PL/SQL登录出现 ORA-01033:ORACLE initialization or
- 具体解释NoSQL数据库使用实例
- GreenDao3.0 使用(包括导入,具体方法,基本使用,加密,数据库升级等)