Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Postgres数据库需要时间来获取总记录数_Postgresql - Fatal编程技术网

Postgresql Postgres数据库需要时间来获取总记录数

Postgresql Postgres数据库需要时间来获取总记录数,postgresql,Postgresql,我正在使用Postgres数据库,我有一个每日\u txns表,其中包含超过2,00,00000条记录, 因此,我为每日事务创建了子表分区,该分区继承了主事务表,即daily\u txns\u child\u 2017\u 08\u 01。 我正在搜索一个索引列**mid**和**created_date**它需要更长的时间来响应,即使获取其中的总记录也需要更长的时间。 如何加速数据提取?第一次查询需要5分钟以上,第二次查询需要20分钟以上。 我的问题如下 select * from daily

我正在使用Postgres数据库,我有一个每日\u txns表,其中包含超过2,00,00000条记录, 因此,我为每日事务创建了子表分区,该分区继承了主事务表,即daily\u txns\u child\u 2017\u 08\u 01。 我正在搜索一个
索引列**mid**和**created_date**
它需要更长的时间来响应,即使获取其中的总记录也需要更长的时间。 如何加速数据提取?第一次查询需要5分钟以上,第二次查询需要20分钟以上。 我的问题如下

select * from daily_txns where created_date <='2017-08-01' and created_date>='2017-07-01' and mid='0446721M0008690' order by created_date desc limit 10;

select count(mid) from daily_txns where created_date <='2017-08-01' and created_date>='2017-07-01' and mid='0446721M0008690';
从创建日期为2017-07-01'和mid='0446721M0008690'的每日订单中选择*按创建日期描述限制10;
从创建日期为2017-07-01'和mid为0446721M0008690'的每日TXN中选择计数(mid);

或者所花费的时间是正常的。

您是否向表中添加了索引?为
created_date
mid
列编制索引将大大提高查询性能。是的,我为created date和mid添加了索引。您用于分区的确切检查约束是什么?。创建表“$nextTable”。(约束pk_389;“$\u nextDate.”主键(id),约束ck“$\u nextDate.”检查(创建日期>=日期“$nextDate”和创建日期<日期“$nextDate”))继承(每日一般来说,postgresql需要按顺序扫描一个表以获得准确的计数,因为该表的索引中不存在可见性。但是,更高版本只能进行索引扫描。查看您的索引是否满足仅索引扫描的要求。请注意,pgsql仍然必须遍历整个索引,但它比扫描表快。您是否向表中添加了索引?为
created_date
mid
列编制索引将大大提高查询性能。是的,我为created date和mid添加了索引。您用于分区的确切检查约束是什么?。创建表“$nextTable”。(约束pk_389;“$\u nextDate.”主键(id),约束ck“$\u nextDate.”检查(创建日期>=日期“$nextDate”和创建日期<日期“$nextDate”))继承(每日一般来说,postgresql需要按顺序扫描一个表以获得准确的计数,因为该表的索引中不存在可见性。但是,更高版本只能进行索引扫描。查看您的索引是否满足仅索引扫描的要求。请注意,pgsql仍然必须遍历整个索引,但它比扫描表快。