sqlalchemy 优化count()……
一、sqlalchemy 中的count()
count()统计数据特别慢:
session.query(cls).count() 8W 数据花费了近50s
但是在数据库中直接查询: select count(*) from table_name. 用时仅0.738s
这个差别让人真是匪夷所思。
  后来在【1】看到了原因:count()方法被用于确定返回的结果集中有多少行,让我们观察一下产生的SQL语句,SQLAlchemy先是取出符合条件的所有行集合,然后再通过SELECT count(*)来统计有多少行。
这个就是遍历完数据库所有记录以后,再select count(*).是很恐怖的,当数据量大的时候,低于100W都不算大吧。当然时间是全部花在了遍历上边.
  我们可以通过表达式func.count()直接使用count函数。-----这个就是相当于数据库中的直接count()
session.query(func.count(cls.id)).scalar()---直接统计主键id
二、其他优化
-------2016-6-28 11:40:23---
source: 【1】sqlalchemy 查询
[2] sqlalchemy 操作技巧
sqlalchemy 优化count()……的更多相关文章
- [Flask]sqlalchemy使用count()函数遇到的问题
		sqlalchemy使用count()函数遇到的问题 在使用flask-sqlalchemy对一个千万级别表进行count操作时,出现了耗时严重.内存飙升的问题. 原代码: # 统计当日登陆次数 co ... 
- "HybridDB · 性能优化 · Count Distinct的几种实现方式” 读后感
		原文地址:HybridDB · 性能优化 · Count Distinct的几种实现方式 HybridDB是阿里基于GreenPlum开发的一款MPP分析性数据库,而GreenPlum本身基于Post ... 
- MySQL优化COUNT()查询
		COUNT()聚合函数,以及如何优化使用了该函数的查询,很可能是最容易被人们误解的知识点之一 COUNT()的作用 COUNT()是一个特殊的函数,有两种非常不同的作用: 统计某个列值的数量 统计行数 ... 
- min/max优化,count ,group by
		min/max优化 在表中,一般都是经过优化的. 如下地区表 id area pid 1 中国 0 2 北京 1 ... 3115 3113 我们查min(id), id是主键,查Min(id)非常快 ... 
- Mysql查询优化之 触发器加中间表 方法优化count()统计大数据量总数问题
		转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6138288.html 在上一篇博文我们提到,分页有三种方法.其中,第三种是我们最常用的.然而,在实际应用过程中 ... 
- sqlalchemy学习
		sqlalchemy官网API参考 原文作为一个Pythoner,不会SQLAlchemy都不好意思跟同行打招呼! #作者:笑虎 #链接:https://zhuanlan.zhihu.com/p/23 ... 
- [MySQL] 分页优化
		在传统的分页思路影响下,很多人都形成了对于分页的固定理解,也就是给出select语句,先用count()函数计算出总的条目,除与每个页面大小pagesize,然后用ceil取整,得出总的页数,用lim ... 
- 高性能MySQL笔记 第6章 查询性能优化
		6.1 为什么查询速度会慢 查询的生命周期大致可按照顺序来看:从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端.其中“执行”可以认为是整个生命周期中最重要的阶段. ... 
- mysql笔记03   查询性能优化
		查询性能优化 1. 为什么查询速度会慢? 1). 如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要优化查询,实际上要优化其子任务,要么消除其中一些子任务,要么减 ... 
随机推荐
- asp
			<%@LANGUAGE="%> <!--#include file="include.asp"--> <meta http-equiv=&q ... 
- NEC学习 ---- 模块 - 左图右文图文列表
			该模块效果图: 这个模块也是在开发中经常使用的一种: HTML代码: <div class="container"> <div class="m-lis ... 
- XAMPP PHP redis 扩展
			1.php增加redis扩展 echo phpinfo();exit;查看php 版本以及 vc运行库 可知 X86 MSVC11 PHP5.6 首先把对应版本的php_redis.dll 和 ... 
- gradlew解决jar或class冲突
			以LeanCloud的推送sdk为例. 我的项目中使用了android-async-http库和fastjson的库,然后LeanCloud的的sdk中也使用了这两个库,但是版本有点低. 处理方式: ... 
- tomcat服务重启linux
			1杀掉tomcat 进程 用ssh登陆到服务器 lsof -i:8080 //找到端口 ps -ef|grep tomcat kill -9 端口 2找到tomcat目下的start ... 
- 简单实用的双向电平转换电路(3.3v-5v)
			当你使用3.3V的单片机的时候,电平转换就在所难免了,经常会遇到3.3转5V或者5V转3.3V的情况,这里介绍一个简单的电路,他可以实现两个电平的相互转换(注意是相互哦,双向的,不是单向的!).电路十 ... 
- ssm框架web.xml中filter配置问题
			<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://w ... 
- Android 自定义RecyclerView 实现真正的Gallery效果
			http://blog.csdn.net/lmj623565791/article/details/38173061 
- [Android Tips] 9. framework notification layout font size
			android 4.4 framework notification layout 相关字体大小 * title: notification_title_text_size: 18dp * conte ... 
- C/C++ 结构体 简单输入输出
			#include <stdio.h> #include <stdlib.h> struct student{ int num; ]; double dec; }; int ma ... 
