PostgreSQL中COUNT的各条件下(1亿条数据)例子
test=#
insert
into
tbl_time1
select
generate_series(1,100000000),clock_timestamp(),now();
INSERT
0 100000000
Time
: 525833.218 ms
约:8.7分钟
COUNT,没有索引,1亿条数据。
test=#
select
count
(1)
from
tbl_time1;
count
-----------
100000000
(1 row)
Time
: 3070658.058 ms
约:51.2分钟
添加主键索引耗时
test=#
alter
table
tbl_time1
add
primary
key
(id);
ALTER
TABLE
Time
: 981276.804 ms
约:16.4分钟
COUNT,有索引(主键),1亿条数据,注意 where id > 0 的条件
这个有
where
id > 0
test=#
select
count
(id)
from
tbl_time1
where
id > 0;
count
-----------
100000000
(1 row)
Time
: 244243.112 ms
约:4.071分钟
COUNT,有索引(主键),1亿条数据,注意没有 where id > 0 的条件
这个无
where
id > 0
test=#
select
count
(id)
from
tbl_time1;
count
-----------
100000000
(1 row)
Time
: 548650.606 ms
约:9.144分钟
通过修改配置文件调优
enable_bitmapscan =
off
enable_hashagg =
on
enable_hashjoin =
on
enable_indexscan =
on
enable_indexonlyscan =
on
#enable_material =
on
#enable_mergejoin =
on
#enable_nestloop =
on
enable_seqscan =
off
#enable_sort =
on
enable_tidscan =
off
test=#
select
count
(id)
from
tbl_time1
where
id > 0;
count
-----------
100000000
(1 row)
Time
: 87501.151 ms
约:1.456分钟
PostgreSQL中COUNT的各条件下(1亿条数据)例子的更多相关文章
- [原创]PostgreSQL Plus Advanced Server批量创建分区表写入亿级别数据实例
当前情况:大表的数据量已接近2亿条我的解决思路:为它创建n*100个分区表,将各个分区表放在不同的tablespace上这样做的优点:1.首先是对这个级别的数据表的性能会有所提升2.数据管理更科学3. ...
- resultMap中的collection集合出现只能读取一条数据的解决方法
查询数据时只能获得collection集合中的的一条数据,相关情况如下: 结果集resultMap: <resultMap id="ManagerRolesAcls" typ ...
- innodb中一颗B+树能存储多少条数据
如图,为B+树组织数据的方式: 实际存储时当然不会每个节点只存3条数据. 以InnoDB引擎为例,简单计算一下一颗B+树可以存放多少行数据. B+树特点:只有叶子节点存储数据,而非叶子节点存放的是用来 ...
- Java中如何实现j并发更新数据库同一条数据
分情况来说:普通单应用并发.多应用或多台服务器并发 情况一:普通单应用并发 使用关键字synchronized就可实现. 情况二:多应用或多台服务器并发 因多个应用之间并非同一个jvm(应用)内,因此 ...
- 亿条数据在PHP中实现Mysql数据库分表100张
当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度.笔者做了一个简单的尝试,1亿条数据,分100张表.具体实现过程如下: 首先创建100张表: $i=0; while($i<=9 ...
- 1亿条数据在PHP中实现Mysql数据库分表100张
当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度.笔者做了一个简单的尝试,1亿条数据,分100张表.具体实现过程如下: 首先创建100张表: $i=0; while($i<=9 ...
- 查询某个信息下只有一条数据的sql
- mysql中运用条件判断筛选来获取数据
### part1 单表查询 sql查询完整语法: select .. from .. where .. group by .. having .. order by .. limit .. 一.wh ...
- 在UPDATE中更新TOP条数据以及UPDATE更新中使用ORDER BY
正常查询语句中TOP的运用: SELECT TOP 1000 * FROM MP_MemberGrade 随意更新一张表中满足条件的前N条数据: UPDATE TOP (1) MP_Member ...
随机推荐
- leetcode 解题报告 Word Break
Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separa ...
- 如何优雅地使用 Sublime Text
Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比 于难于上手的Vim,浮肿沉重的Ecli ...
- javascript中数组concat()join()split()
concat() 方法用于连接两个或多个数组. 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 所以 <script type="text/javascript" ...
- Java获取新浪微博cookies
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.F ...
- Java 数据库操作之Dao类
package Dao; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; imp ...
- springboot 连接池wait_timeout超时设置
使用springboot 线程池连接MySQL时,mysql数据库wait_timeout 为8个小时,所以程序第二天发现报错,在url配置了 autoReconnect=true 也不行,查询配置以 ...
- vm10.0key
5F4EV-4Z0DP-XZHN9-0L95H-02V17
- c++ vector struct 使用
1. //test.h #include <string> using namespace std; struct AA { string a1; string a2; string a3 ...
- 9.nodejs权威指南--Socket.IO
1. Socket.IO 1.1 服务器 var http = require('http'); var sio = require('socket.io'); var fs = require('f ...
- linux下mysql开启关和重启
开启: /etc/init.d/mysql start关闭: /etc/init.d/mysql stop重启: /etc/init.d/mysql restart 查看字符集show variabl ...